5
什么是 ”:-!!” 用C代码?
我碰到了/usr/include/linux/kernel.h中的这个奇怪的宏代码: /* Force a compilation error if condition is true, but also produce a result (of value 0 and type size_t), so the expression can be used e.g. in a structure initializer (or where-ever else comma expressions aren't permitted). */ #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct …
1664
c
linux
macros
linux-kernel