#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
这个宏为编译时判断e是否为0
假如e等于非0值,则!(e)为0,则!!(e)为1。再struct{int:-1}则会编译出错。
假如e等于0,则!(e)为1,则!!(e)为0。再struct{int:-0},实际等价于struct{int:0}则编译通过。
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
这个宏为编译时判断e是否为0
假如e等于非0值,则!(e)为0,则!!(e)为1。再struct{int:-1}则会编译出错。
假如e等于0,则!(e)为1,则!!(e)为0。再struct{int:-0},实际等价于struct{int:0}则编译通过。