《c陷阱与缺陷》中的笔记——c语言null指针 && 宏定义的副作用
《c陷阱与缺陷》中的笔记——c语言null指针
如果定义了指针,并赋值NULL,那么使用该指针的时候,一定要进行判断,否则肯定是出错的,尤其是单片机中,访问地址0肯定是硬件错误的,除非是故意使用,执行地址0的函数。
《c陷阱与缺陷》中的笔记——宏定义的副作用
在使用宏定义的时候,切记不能有副作用,这个副作用是不可移植的,c标准是未定义的,每个编译器都有不同的实现方式,也就是宏定义不同于函数,
//11、返回一个比X大的最接近的8的倍数
#define RND8( x ) ((((x) + 7) / 8 ) * 8 )
如果RND8(x++)的使用方式是不推荐的,可以说杜绝这样的使用方式。
另外宏定义中,不用使用if、else语句和switch语句,除非写协程,这个是有难度的,写的不好,就会出现bug
当然宏定义中的()要记得多加,多加肯定没啥问题。并且在优先级的问题上,多加()肯定没问题。