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

标签 c

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

最佳答案

How to check which version of C my compiler is using?

要检查标准版本,请使用 __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

示例 macro usage

关于c - 如何检查我的编译器使用的是哪个版本的 C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59040555/

相关文章:

c - C 中的广义约简梯度算法

c - 一种将跟踪和回溯包含到 C 程序中的简单、统一和可移植的方法

c - 为什么 (3 & 0x1111) = 1?

c++ - 对 "fun2()"的 undefined reference

C读取输入文件并对一种类型进行升序排序

c - 等价于数组的指针

c - "What is wrong with the following listing?"我正在尝试学习函数但需要一些帮助

mysql - propercase mysql udf

c - 出现段错误但不知道如何修复它

C 预处理器 #if 处理非整数常量