堆栈(栈)的实现 链表栈#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct linkstack{ data_t data; struct linkstack *next;}linkstack_t;linkstack_t *creat_linkstack(){ linkstack_t *head; head = malloc(sizeof(linkstack_t)); head->
队列queue的实现 顺序表实现##list.c#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct list{ data_t *data; //保存数据的空间 int size; //容器能保存的元素个数 int last; //保存最后一个有效元素的下标}list_t;/*返回创建好的 空顺序表 的地址*/list_t *creat_list(int size){ list_t *
顺序表实现案例 范例1## list.c#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct list{ int size; //容器能保存的元素个数 int last; //保存最后一个有效元素的下标 data_t data[0]; //不定长数组名 必须放于 结构体的最后一个成员}list_t;/*返回创建好的 空顺序表 的地址*/list_t *creat_list(int
冒泡,快排和树 冒泡#include <stdio.h>#include <stdlib.h>int data[] = {3,8,2,9,1,5,7,6,4}; //3,2,8,1,5,7,6,4,9int maopao(int data[],int size){ int i,j; int temp; for(j = 0;j < size - 1;j ++){ for(i = 0;i < size - 1 - j;i ++){ if(data[i]
单向链表及双向链表 链表#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct linknode{ data_t data; struct linknode *next;}link_t;link_t *creat_link(){ link_t *head; head = malloc(sizeof(link_t)); head->next = NULL; return head;
linux网络编程 网络基本知识:TCP协议分成了两个不同的协议TCP:用来检测网络传输中差错的TCP:面向连接的数据流传输服务 可靠 适合网络状况不是很好的场合UDP:面向无连接的传输协议 不可靠,但是实时性更好,适合网络状况佳的场合socket套接字:socket是一种特殊的IO接口,也是一种文件描述符。不仅能实现本地不同进程之间的通信,而且通过网络能够在不同主机进程之间进行通信分类:流式套接字SOCK_STREAM 应用TCP通信数据报套接字SOCK_DGRAM 应用U
linux shell 1、shell是一个命令行解释器,能够使用户和操作系统进行交互。命令格式(通常包括三部分,选项和参数是可选项):命令 选项 参数连续按下两次TAB键用于命令补齐,按下一次TAB键用于文件名补齐。2、shell通配符和特殊字符'*‘表示匹配任意长度的字符串,’?'表示匹配一个长度的字符管道(|):将第一个命令的输出作为第二个命令的输入,,使用管道可以将一些命令联合起来使用,得到单个命令无法实现的效果。 eg:ls /usr/bin |wc -W输入/输出重定向:改变shell命令的输入输出
C语言(二) 1、sizeof(fun)=1sizeof(&fun)=4 fun为函数名解释:函数名其实是一个符号表,占用一个字节,虽然函数名可以当做函数的入口地址,当做一个指针,但是并不能像指针那样占用4个字节,当取地址的时候,确定是4个字节2、存储类型auto:默认情况下,所有的变量都是autoregister:表示变量是存放在CPU寄存器中,而不是存放在内存里面,因此不能用&符号取内存地址extern:声明变量或者函数是来自外部的文件static:修饰局部变量:作用域为定义该局
IO与静态库动态库 一、文件IO1、什么是系统调用(文件IO)(1)用户空间进程访问内核的接口,使用内核提供 的各种功能(2)极大提高了系统的安全性和用户程序的可移植性(因为操作系统大多是多任务的,直接访问硬件会出问题)2、什么是库函数(标准IO)(1)库函数是为了实现某个功能而封装起来的API集合(用户编程接口)(2)提供统一的编程接口,更加便于应用程序的移植系统调用和库函数的区别************系统调用发生在内核空间,如果用户空间的一般应用程序使用系统调用来进行文件操作,会有用户空间切换到内核空间的
进程与线程 一、进程、线程特点及其关系1、多任务处理多任务处理指用户可以在同一时间内运行多个应用程序,每个应用程序称为一个任务。事实上,单核处理器同一时刻只能执行一个任务,每个任务创建时被分配时间片(几十到上百毫秒),操作系统会在当前任务的时间片用完时,调度其他任务,由于任务会频繁第切换执行,因此给用户多个任务同时运行的错觉。2、进程(1)基本概念程序是一段静态的代码,而进程是程序的一次动态执行过程,它是操作系统进行资源分配和调度的最小单元。一次任务的执行可以激发多个进程。(2)主要特性a、并发性系统中
C语言(一) 一、C语言背景简介1、GCC编译流程预处理 :-E -->.i文件 预处理只是做头文件的展开,宏替换,条件编译选项的判断,注释删除等工作,不会报任何错误编译:-S -->.s文件 检查代码是否有语法错误,无误后翻译成汇编语言汇编:-c -->.o文件 将汇编文件翻译成二进制机器代码链接:链接函数库,生成可执行文件这里有个点就是在预处理阶段.H文件只是包含了大量的函数声明,而没有函数的实现,这些函数的实现都被封装进函数库里
应用三 便携式甲醛检测仪(上)--SHT30 简介本项目是工作中做的一个便携式手持检测仪项目,集成了自家公司的HCHO,TVOC传感器,买的sht30温湿度传感器,基本功能是能通过集成的传感器检测温湿度信息,空气中甲醛含量,TVOC含量,能通过厂家定制的段码屏显示这些信息和电池电量,能通过按键控制屏幕亮度,短按亮度变暗,长按关闭屏幕。基本功能框图如下:本文将分模块对相应功能进行介绍。SHT30温湿度介绍SHT30是I2C接口的高精度...