关于BUILD_BUG_ON

内核中有这样一个宏:

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

其作用是在编译的时候如果condition为真,则编译出错。

即:如果condition为真则!condition为0;!!condition值为1;所以编译器在编译char[1-2]时汇出错。

http://blog.163.com/yangfan876@126/blog/static/80612456201282094458498/

原文地址:https://www.cnblogs.com/mull/p/4477855.html