您的位置:首页 > 其它

一个比较有意思的宏

2011-04-15 19:06 197 查看
#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}则编译通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: