轉 一個用於在編譯階段發現錯誤的技巧

在剖析epoll源代碼的時候,發現了一個頗有用的宏,該宏的目的主要是解決一些條件知足,一旦沒法知足這些條件,將會在編譯階段提示錯誤,而不是到運行階段出現crash。 宏定義以下: #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) //若是條件*知足就直接char[-1],此時將會出現編譯錯誤。 宏的使
相關文章
相關標籤/搜索