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 关键字的作用
