mips
炒番茄蛋的厨子
这个作者很懒,什么都没留下…
展开
-
宏定义中为什么使用do {...} while (0)
#define IF_CLS_CTRL_RX_BUSY(m) do {(m) &= ~IF_CTRL_RX_BUSY;} while (0)在工程代码的代码中,我们经常会遇到 do{ } while(0)这种样式的宏定义,这句代码编译后的效果如下,为了更好的理解,eg:宏定义在进行编译时,编译器只会简单得进行替换,do能确保大括号里的逻辑能被执行,而while(0)能确保...原创 2019-10-24 16:11:51 · 331 阅读 · 0 评论 -
C语言#define中的1UL
先看代码#define TIMER_INTF (1UL << 5)第一次遇到代码中出现UL,只有数值常数才有后缀说明,这里面UL都是整形常数后缀,这里的UL有两个作用:强制转换,解决溢出问题。1.C语音中数字常量的表示方式:(1)数值常数有:整型常数、浮点常数;(2)整型常数的表示形式有:十进制形式、以0开头的八进制形式、以0x开头的十六进制形式,无二进制...原创 2019-07-11 11:08:18 · 3321 阅读 · 0 评论