确定实现的 C 标准版本
确定编译器的 C 标准实现对于确保兼容性和利用最新语言功能至关重要。已经发布了多个 C 标准,包括 C 98 和 C 03。
识别标准版本的一种方法是检查宏 __cplusplus。
__cplusplus 宏
根据 Bjarne Stroustrup 的 C 0x FAQ,__cplusplus 宏将是对于 C 11 及更高版本,设置为大于 199711L 的值。但是,某些编译器可能无法正确设置此宏。
GCC
gcc 历史上曾将 __cplusplus 设置为 1,无论语言版本如何。此问题已在 gcc 4.7.0 中得到解决。
MSVC
MSVC 还将 __cplusplus 错误地定义为 199711L。要获取正确的值,请将 /Zc:__cplusplus 添加到编译器标志或检查 MSVC 特定宏 _MSVC_LANG。
预期 __cplusplus 值
其他方法
如果 __cplusplus 不足或不可用, 其他方法包括:
需要注意的是,并非所有编译器都完全实现 C 标准的所有功能。为了确保可靠的代码执行,需要仔细检查编译器兼容性和功能支持。
以上是如何确定我的编译器所实现的 C 标准版本?的详细内容。更多信息请关注PHP中文网其他相关文章!