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
示例宏用法
推荐阅读
- c# - Entity Framework 6.1 - 如何查询软删除记录?
- r - 使用自己的几何扩展 ggplot:调整默认比例
- ios - Swift String 在转义单引号时表现异常
- c# - Blob 触发器 - 处理结构类似于 folder.zip>folder>(170 个文件-gifs、png、txt 等)的 zip 文件的问题
- python - 如何检查 numpy 数组是否包含数字列表?
- javascript - Cordova中从Web到设备文件系统的目录递归复制
- python - 如果出现符号,则将单词(字符串)的一部分更改为不同的字符串。Python
- python - 使用 Python 从 csv 文件创建深度嵌套的字典
- c - arm 编译器 5 不完全尊重 volatile 限定符
- python - 如何在for循环中排除与文本模式匹配的项目?