C
风吹梧桐的果子
在校学习,自动化专业
展开
-
回调函数
回调的作用回调可用于通知机制,例如,有时要在程序中设置一个计时器,每到一定时间,程序会得到相应的通知,但通知机制的实现者对我们的程序一无所知。而此时,就需有一个特定原型的函数指针,用这个指针来进行回调,来通知我们的程序事件已经发生。首先要明确的一点是,函数也可以作为函数的参数来传递好了,有了这个概念我们来说明回调函数到底是怎么回事首先至少要有 3 种类型的函数主函数:相当于整个程序的引擎,调度各个函数按序执行回调函数:一个独立的功能函数,如写文件函数中间函数:一个介于主函数和回调函数之间的函数转载 2021-04-19 13:39:12 · 403 阅读 · 0 评论 -
对typedef void (*sighandler_t)(int)的理解(声明了一种类型:sighandler_t)
typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);此处由于加了typedef自定义了一个新类型sighandler_t,所以第二行的函数原型看起来顺眼多了,形式跟int func(char c, int i)无异,但是如果看不懂typedef语句,这两句话仍然是噩梦。要理解typedef,只要记住一句话就差不多了,那就是:typedef在语句中所起的作用只不过是把语句原先定义变原创 2021-04-11 20:30:51 · 1079 阅读 · 0 评论 -
lessk()函数详解
C语言lseek()函数的用处:移动文件的读写位置头文件:#include <unistd.h>函数原型:off_t lseek(int fd,off_t offset,int whence)函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的原创 2021-04-08 22:40:56 · 562 阅读 · 0 评论 -
FreeRtos到底是干嘛的,与普通的单片机编程(裸机开发)的区别
在嵌入式方面,很多人都知道裸机开发(也就是普通的单片机开发),也知道实时操作系统,但是大家都搞不懂他们到底有什么区别,使用实时操作系统到底有什么样的优势? 在日常的单片机开发中我们一般使用轮询系统或者前后台系统,轮询系统可以理解为一个while(1)那种死循环,一直循环执行很多的任务 例如while(1) { //点亮LED //判断按键是否按下 //摄像头接收数据 //接收温湿度数据原创 2020-09-23 23:27:02 · 4955 阅读 · 3 评论 -
关于printf的%*d
printf()跟scanf()都可以用*修饰符来表达转换说明地 含义。但是printf()跟scanf()是有区别的。在printf()中的用法就是: int width=2,num; printf("%*d",width,num);这里可以理解为把第一个参数给*,就可以理解为: printf("%2d",num);在举一个例子: int width=2,pre=2,num; printf("%*.*d",width,pre,num);这里可以理解为把前两个参数给分别给原创 2020-08-16 10:46:59 · 2099 阅读 · 0 评论 -
怎么让把一个数据(写入)转换为字符串的sprintf函数
在有时候写程序的时候,我们会遇到一些问题,就是一个变量里的数据,我们想要他以字符串的格式输出,这时候我们就需要用到sprintf函数函数功能:格式化字符串,将格式化的数据写入字符串中。 函数原型:int sprintf(char *buffer, const char *format, [argument]...)第一个参数是目标字符串的地址,char buffer[100];我们可以这样定义一个数组,然后用数组名字当实参第二个参数是数据格式例如%d这样第三个是可选参数,可以为任意类型的数据,原创 2020-06-06 17:39:13 · 704 阅读 · 0 评论