我看到这个宏出现在代码库的许多地方,以查找特定字段是否被禁用(0或1).
#define assert_disabled(e) ((void)sizeof(e))
Run Code Online (Sandbox Code Playgroud)
如何sizeof帮助查找字段是0还是1?
有人可以用一个有效的例子来解释这个吗
我很确定这个宏只是在关闭断言时使用.使用((void)sizeof(e))而不仅仅是(void)0或类似的技巧是聪明的:它避免评估e(大多数),但仍然有编译器检查e是一个有效的表达式,所以当你更改定义以打开断言时,你不会得到意外的编译错误.