
C
sscb0521
这个作者很懒,什么都没留下…
展开
-
C语言打印文件名、函数名、行号、时间信息
_FUNCTION__ or __func__:函数名(字符串)__LINE__:当前打印函数所在的行号(整型数据)__DATE__:当前日期(和系统有关,是字符串)__TIME__:实时时间(字符串)1. 标准库中一些特殊的宏。__FILE__:文件名(原创 2024-02-28 09:14:27 · 1456 阅读 · 0 评论 -
C语言-常用函数
5、取较小值,较大值。原创 2024-02-28 09:13:18 · 407 阅读 · 0 评论 -
结构体位域保存传感器数据
8个74HC4052共用两个选通引脚,8个输入引脚,一共可以检测64个数字红外传感器。74HC4052的功能表如下,nY0表示所有Y0引脚。产品有64个数字红外传感器,传感器的状态有两种,0或1,使用结构体位域,在节省内存的同时还方便阅读。这个定义在中间层,应用层调用中间层,驱动层负责获取传感器的状态并赋值给这个结构体。原创 2024-02-28 09:07:39 · 424 阅读 · 0 评论 -
C语言-结构体
考虑结构体数组 struct s2 a[4],就不能满足数组 a 的每个元素的对齐要求。假设数组的起始地址为 x,则每个元素的地址分别为 x、x+9、x+18、x+27,有三个元素不满足对齐原则。由此,编译器会为结构 s2 分配 12 个字节,最后三个字节是补充的空间(浪费的空间),即在结构体的末尾增加填充。要正确计算这个结构体的大小,需要这样考虑:创建这个结构体的数组,每个数组元素都会满足它的对齐要求。对齐原则:假设结构体成员大小是m字节,其地址是m的倍数。32位单片机,IAR编译器仿真结果是9。原创 2023-08-25 22:00:00 · 323 阅读 · 0 评论 -
提高浮点数运算速度
R/1000E=587G/1000R/4096E=2404G/4096R)>>12E=(2404G)>>12。原创 2023-08-20 20:48:24 · 447 阅读 · 0 评论 -
可重入函数
在一个多任务环境中,一个函数如果可以被多次重复调用,或者被多个任务并发调用,函数在运行过程中可以随时随地被打断,并不影响该函数的运行结果,我们称这样的函数为可重入函数。相反,如果一个函数不能多次并发调用,在执行过程中不能被中断,否则就会影响函数的运行结果,那么这个函数就是不可重入函数。原创 2023-08-20 20:42:54 · 167 阅读 · 0 评论 -
Modbus-CRC16查表法
Modbus-CRC16的初始值是0xFFFF,多项式是0x8005。原创 2023-08-20 20:10:20 · 691 阅读 · 0 评论 -
无符号数相减溢出
u16 a=190;u16 b=1020;u16 c=0;c=a-b;c=0xfcc2;单片机采用补码运算,需要程序员认为识别是有符号数还是无符号数。通过最高bit判断。//相差不大取上一次的值if(Fluor_Value_100x_backup!=Fluor_Value_100x){ //用减法处理会有溢出情况 if((Fluor_...原创 2018-04-23 18:15:24 · 5122 阅读 · 0 评论 -
C语言-指针
#include int main(int argc, char *argv[]){int a = 2;int *b = &a; //&a表示指针常量printf("%d\n",*b);//*b表示右值*b = 3; //*b表示左值int c = *b;printf("%d\n",*b);printf("%d\n",c);return 0;原创 2016-12-28 14:56:44 · 268 阅读 · 1 评论