内核里面的一些有用的trick

来源:互联网 发布:cisco端口类型 编辑:程序博客网 时间:2024/05/16 16:08

1、编译期间检查

#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))


 此物就是在编译期间做一个检查,gcc编译如下:

int main(){    BUILD_BUG_ON(1 == 2);    BUILD_BUG_ON(1 != 2);}

在编译期间,直接报错,sizeof的数组的下标为负值。

那么,可以如下修改么?

#define BUILD_BUG_ON(condition) char[1 - 2*!!(condition)]

不行,这么就是运行期了,直接崩溃。

原创粉丝点击