Determining the Implemented C Standard Version
Determining the C standard implementation of your compiler can be crucial for ensuring compatibility and utilizing the latest language features. Several C standards have been released, including C 98 and C 03.
One method for identifying the standard version is to check the macro __cplusplus.
__cplusplus Macro
According to Bjarne Stroustrup's C 0x FAQ, the __cplusplus macro will be set to a value greater than 199711L for C 11 and higher. However, some compilers may not set this macro correctly.
GCC
gcc has a history of setting __cplusplus to 1, regardless of the language version. This issue was addressed in gcc 4.7.0.
MSVC
MSVC also incorrectly defines __cplusplus as 199711L. To obtain the correct value, either add /Zc:__cplusplus to compiler flags or check the MSVC-specific macro _MSVC_LANG.
Expected __cplusplus Values
Other Methods
If __cplusplus is insufficient or unavailable, other approaches include:
It's important to note that not all compilers fully implement all features of a C standard. Careful examination of compiler compatibility and feature support is necessary to ensure reliable code execution.
The above is the detailed content of How Can I Determine the Implemented C Standard Version of My Compiler?. For more information, please follow other related articles on the PHP Chinese website!