linux内核宏
2021-02-18, updated 2021-09-12
linux内核中有大量的宏,方便理解或有特定的用途等。
BUILD_BUG_ON
// linux-source-4.19/tools/include/linux/kernel.h
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
如果condition
为真,则编译出错
即如果condition
为真,则!(condition)==0
; !!(condition)==1
; 故编译器在编译char[1-2]
时会出错。