内核中有这样一个宏:
#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/