[英]How to get current c dialect in gcc?
C語言編程的新手。
在gcc -std
設置要編譯的C標准,例如gcc -std=c99
。
可以知道當前設置了哪個C標准?
在各種模式下定義了各種預處理器符號。 您可以使用gcc -E -dM -xc /dev/null
獲取所有預定義符號的轉儲。
在C99模式下( -std=c99
或-std=gnu99
),符號__STDC_VERSION__
定義為199901L
。 在C11模式下( -std=c11
或std=gnu11
)是201112L
在嚴格C模式下( -std=cXX
而不是-std=gnuXX
),符號__STRICT_ANSI__
被定義為1
您可以使用此程序來打印默認值:
#include <stdio.h>
int main() {
#ifdef __STRICT_ANSI__
printf("c");
#else
printf("gnu");
#endif
#ifdef __STDC_VERSION__
#if __STDC_VERSION__ == 199901L
puts("99");
#elif __STDC_VERSION__ == 201112L
puts("11");
#else
puts("(unknown)");
#endif
#else
puts("90");
#endif
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.