簡體   English   中英

如何在gcc中獲取當前的c語言?

[英]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=c11std=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM