宏 理解

发布时间 2023-06-19 13:30:10作者: lance9527

1、 #if (AAA && !BBB && !(defined(CCC)))

       #error "------1-----"

       #endif

注:如果AAA的宏值为非0值,BBB的宏值为0值 且 define 了CCC宏(CCC不论是空宏还是任意数值的宏,这里的作用都等效),那么就会输出错误打印-----1-----

 

2、#define    LWIP_ASSERT(message, assertion)     do { if (!(assertion)) { LWIP_PLATFORM_ASSERT(message); } }  while(0)  

注:宏中使用 do while(0) 时,定义处的结尾不能有分号;使用宏的地方以分号结尾。

 

3、 do…while(0)  可以代替  goto 关键字的作用