__cpluscplus宏定义C++版本号,比如C++03标准中__cplusplus的值被预定为199711L,在C++11标准中__cplusplus的值被预定为201103L。
通过以上说明,可以写出以下代码来判断现在用的编译器支不支持C++11。
1 2 3 |
#if __cplusplus < 201103L #error "C++11 Does not support" #endif |
__cplusplus还有一个作用,就是C/C++代码混合编程时运用。
1 2 3 4 5 6 7 8 |
#ifdef __cplusplus extern "C" { #endif //代码 #ifdef __cplusplus } #endif |
相信这段代码在头文件中会经常看到,主要用途就是实现用C方式进行编译,因为用C++方式编译它会将函数进行名字重组(为了实现函数重载),所以要混合编程必须统一按C方式编译代码。