转 一个用于在编译阶段发现错误的技巧

在剖析epoll源代码的时候,发现了一个颇有用的宏,该宏的目的主要是解决一些条件知足,一旦没法知足这些条件,将会在编译阶段提示错误,而不是到运行阶段出现crash。 宏定义以下: #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) //若是条件*知足就直接char[-1],此时将会出现编译错误。 宏的使
相关文章
相关标签/搜索