考慮代碼:
#include <stdio.h>
int main() {
int a = 4;
#if 1
printf("Hello world\n");
#endif a ;
printf("a is %d\n", a);
}
不經意間,陳述句a ;與 a 位于同一行#endif并且不會被評估。結果,最終的輸出是:
Hello world
a is 4
在 x86-64 clang 12 上,這被捕獲為使用 option 的警告-Wextra-tokens。見
uj5u.com熱心網友回復:
有編譯器警告C4067。看起來您需要設定標志/Za以將其應用于#endif指令。
在 Visual Studio 屬性頁中,此標志由 C/C 部分的語言小節中的設定“禁用語言擴展”控制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388847.html
