C语言
文章平均质量分 85
C语言 基础 Linux C
wangs7_
努力学习!
展开
-
非阻塞有限状态机的实现 C语言
非阻塞有限状态机的实现 C语言非阻塞IO – 阻塞IOIO多路转接其他读写函数存储映射IO文件锁非阻塞 IO简单流程:如果一个程序的自然流程是结构化的,就是简单流程。(明确能分析结构流程的)复杂流程:如果一个程序的自然流程不是结构化的,就是复杂流程。有限状态机的实现方法:任务:实现一个数据中继模型。(流式套接字) - - -> 设备1 <——> 设备2 < - - -目标:a. 读设备1——写设备2——读设备2——写设备1如果采用阻塞的方式,假如正原创 2020-10-05 21:07:32 · 365 阅读 · 0 评论 -
C语言——IO操作(三)
3 系统调用3.1 文件描述符原理文件描述符的概念文件标识 inode(整型数, 数组下标) open file[inode] -> 文件结构体 -> pos 位置指针 count 打开计数器 文件流会存在一个进程空间的数组中 标准输入输出错误 会占用当前可使用地最小地三个文件描述符。文件IO操作open, close, read, write, lseek文件IO与标准IO地区别IO效率问题原创 2020-06-12 19:21:38 · 404 阅读 · 0 评论 -
C语言——IO操作(二)
1.5 printf 和 scanfprintf() #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int dprintf(int fd, const char *format, ...); int sprintf(char *str, const c原创 2020-06-11 14:29:35 · 232 阅读 · 0 评论 -
C语言——IO操作(一)
C语言——IO操作(一)1 标准IO介绍I/O: stdio sysio (优先使用标准IO)IO是一切程序实现的基础。stdiofopen(); fclose(); fgetc(); fputc(); fgets(); fputs(); fread(); fwrite();scanf(); printf();fseek(); ftell(); rewind();fflush();1.1 fopen() 和 fclose()fopen();FILE *fope原创 2020-06-10 11:45:14 · 1247 阅读 · 0 评论 -
数据结构C语言——简单二叉树的实现
4 树深度:层数。度:子树的数量。叶子:没有子节点的节点。4.1 二叉树定义:每个节点至多有两个子节点,且需要区分左孩子和右孩子。满二叉树:深度为 kkk 节点数量为 2k−12^k-12k−1 的二叉树。完全二叉树:只有最后两层的节点可以不满,且只有一个子节点的节点,其子节点必为左孩子的二叉树。4.1.1 二叉树的顺序存储/* * 二叉树 如下 * A * B C * D E F G * H …… …… …… …… …… …原创 2020-05-11 09:29:02 · 332 阅读 · 0 评论 -
C语言之动态静态库和make——Linux
1 静态库静态库在编译时把库转载进来,不占用程序的运行时间,但是容易造成代码的膨胀。一般为私有资源。静态库libxxx.axxx 指代库名 ar -cr libxxx.a yyy.o发布到/usr/local/include .h存放目录/usr/local/lib .a存放目录gcc -L/usr/local/lib -o main main.o -lxxx...原创 2020-05-01 10:31:58 · 217 阅读 · 0 评论 -
数据结构C语言——队列的实现(数组、链表)
3 队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最...原创 2020-04-28 11:09:56 · 1137 阅读 · 2 评论 -
数据结构C语言——栈的实现(顺序、链式结构)
2 栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾(或表头)进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈是只允许在同一端进行插入和删除操作的特殊线性表。允许进行插...原创 2020-04-24 19:23:47 · 396 阅读 · 0 评论 -
C语言的面向对象的封装方法
1.3.2 面向对象的封装方法在封装C的函数时可以采用面向对象的封装方法,将结构体类化,以实现对用户隐藏函数的效果。集体方法如下:在结构体中定义一组对应方法的函数指针,将需要隐藏的函数方法声明转移到.c文件中并在结构体的初始化过程中添加对应函数指针的赋值操作,用户使用方法时仅需要使用 结构体指针->函数指针(参数表) 的方法即可实现对函数的调用。以上文数据结构C语言——双向链表及其...原创 2020-04-22 10:26:38 · 888 阅读 · 0 评论 -
数据结构C语言——双向链表及其实现
双向链表双向环链(非环连只需将尾部与头节点断开即可)组成:每个节点主要包含三个部分,数据域、前驱指针、后继指针。分类:带头结点的和无头结点的。带头结点的双向环链实现目的,写一个针对不同数据的双向的库。链表指针操作小贴士:假设链表节点内有三部分组成,数据域,前驱指针,后继指针三部分,现在在双向链表中有A、B两个相邻的节点,即A的后继指向B,B的前驱指向A。此时要在AB中插入节点...原创 2020-04-21 20:58:06 · 317 阅读 · 0 评论 -
数据结构C语言——单向链表及其实现
数据结构C语言——单向链表enmmmm暂时只有有头单链表的实现,后边无头的以后会更新qwq。悄悄告诉你,之前因为Linux环境没配好,代码可能有忆点bug,嘻嘻,不过框架没得问题。有头单链表:头节点不存储有效数据,便于对链表操作。(Linux环境没配好,代码没测可能有亿点bug)makefileall:mainmain:main.o list.o $(CC) $^ -o $@...原创 2020-04-19 23:56:11 · 285 阅读 · 0 评论 -
数据结构 C 实现 —— 顺序表及其实现
数据结构 C – 顺序表简介顺序表在物理结构上表现为连续的内存地址,建立顺序表是一次申请固定大小的连续内存,另外需要一个整型数据指示表内最后一个元素的下标,由于顺序表的存储特点,顺序表表现为一下特点:优点:快速查找修改指定位置的元素,由于顺序结构能够通过下标定位元素地址,故能通过下标快速读取数据地址;缺点:同样由于存储结构的特性,决定了顺序表的插入和删除需要移动大量元素(删除需要将后边的...原创 2020-04-18 20:45:01 · 170 阅读 · 0 评论 -
C语言带你入门
C语言基础QWQ本人萌新小白,最近突发奇想打算开始写博客,就从最近刚刚从新温习的c语言开始吧,以后会陆续分享各种学习内容,望各位大佬指点一二。文章目录C语言基础QWQ1 gcc vim编译器gccmake编辑器vim2 基本概念2.1程序思路2.2 算法2.3 程序2.4 进程3 数据类型、运算符、表达式3.1 数据类型3.2 变量与常量3.3 运算符和表达式4 输入输出4.1格式化输入输出...原创 2020-04-16 21:06:47 · 1419 阅读 · 5 评论