C
清江风和
专注嵌入式,聚焦于能力圈内。Summary! Focus!
展开
-
如何用好const关键字
1 修饰变量、数组表示此变量为常量,功能同 #define(但宏定义更优)2 修饰函数参数const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。举例如下:voidfun1(constinti){i++;//对i的值进行了修改,程序报错}voidfun2(constint*p){(*p)++;//对p指向空间的值进行了修改,程序报错}3 修饰指针C语言中const修饰指...原创 2022-01-03 17:20:38 · 155 阅读 · 1 评论 -
可重入函数 = 安全函数
函数是否安全?在实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任务调用这个函数的数据,从而导致不可预料的后果。这样的函数是不安全的函数,也叫不可重入函数。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会出错。可重入函数简单来说,就是可以被打断的函数。就是说,你可以在这个函数执行的任何时候打断他的运行,在任务调度下去执行另外一段代码而不会出现什么错误。也可以原创 2021-11-06 21:13:08 · 151 阅读 · 0 评论 -
【C】16进制高4位低4位转ASCII码
由于通信协议的要求,将16进制的高4位和低4位分别以ASCII码形式通过串口发送给上位机软件。/** *** 16 Hex change to ACSII *** 输入: 十六进制 *** 输出 : Ascii **/u8 AsciiTop , AsciiBtm ; // 定义为全局变量void HexToAscii_SendTopBtm(const unsigned char HexValue){ u8 HexTop, HexBtm;原创 2021-03-03 08:52:08 · 2111 阅读 · 0 评论 -
【C】float型数据取绝对值abs后数据不对?
问题使用函数abs将数据进行计算后,发现并没有得到预期的数值,正常状态下值应将-0.77的负号去掉得到正值,但实际出来结果却为0。解决abs的用法是针对整形变量的,double型变量取绝对值为fabs, float型变量取绝对值函数为fabsf。改为此函数fabsf即可得到正确数值0.77。...原创 2021-02-19 16:42:40 · 2383 阅读 · 0 评论 -
【C】如何用好CONST关键字?
(1) 修饰变量、数组(2) 修饰函数参数(3) 修饰指针(1) 修饰变量、数组表示此变量为常量,功能同 #define(但宏定义更优)(2) 修饰函数参数const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。举例如下:void fun1(const int i){ i++; //对i的值进行了修改,程序报错}void fun2(const int *p){ (*p)+..原创 2021-02-18 17:24:13 · 74 阅读 · 0 评论