在堆棧溢出我遇到了一個問題What is ":-!!" in C code?宏在linux kernel.h當文件中定義
> #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
> #define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
出於好奇,我想知道我該如何使用這些類型的宏?
int main()
{
BUILD_BUG_ON_ZERO(0);
return 0;
}
在上面的代碼中,它給出了一個錯誤,類型名稱是不允許的。
編輯: 代碼編譯使用gcc的Linux,但無法在Visual Studio中
我認爲這就是這些宏的目的:在ZERO或NULL上給出編譯錯誤。 – 2014-09-22 11:18:46
http://stackoverflow.com/questions/9229601/what-is-in-c-code [編輯:]那裏還沒有回答什麼? – mafso 2014-09-22 11:18:57
我想知道如何在代碼中使用它.. – theadnangondal 2014-09-22 11:20:46