BUILD_BUG_ON() 在编译时调用,可以提前发现错误,这里利用了一些不常用的特性,当数组个数元素为负时会发生编译器错误,对于位域宽度而言,其为负数时也会发生编译器错误. #define BUILD_BUG_ON_ZERO(e) (sizeof(struct{int : -!!(e);})) #define BUILD_BUG_ON_NULL(e) ((void*)sizeof(struct{int : -!!(e);})) #define BUILD_BUG_ON(condition)…