首页 > 解决方案 > 如何检查我的编译器使用的是哪个版本的 C?

问题描述

是否有任何我可以编写的代码或任何其他方式来检查我的编译器正在编译哪个版本的 C 语言?

标签: c

解决方案


如何检查我的编译器使用的是哪个版本的 C?

要检查标准版本,请使用__STDC____STDC_VERSION__。各种编译器还提供了特定于实现的宏以供进一步细化。

__STDC__可用于 C89 版本及更高版本。

C94 之前的兼容版本当然不定义__STDC_VERSION__. 从那以后它是一个long常数。

发现的共同值包括:

199409L
199901L
201112L
201710L

把它放在一起

#if defined(__STDC__)
  #if defined(__STDC_VERSION__)
    printf("Version %ld\n", __STDC_VERSION__);
  #else
    puts("Standard C - certainly 1989");
  endif
#else
  puts("Pre 1989 or non-compliant C");
#endif

示例宏用法


推荐阅读