首先,__cplusplus是cpp中的自定义宏,定义这个宏的话表示这是一段cpp的代码。
举个在cpp程序中常见的代码:
#ifdef __cplusplus
extern "C " {
#endif
…………
…………
#ifdef __cplusplus
}
#endif
上面代码的意思:如果编译器在编译cpp文件,那么__cplusplus宏就会被定义;如果是一个c文件在被编译那么__STDC__宏就会被定义。
如果整个程序是用C++写的,那么在C++里面写C要加上extern "C " {}进行说明。至于extern "C"这个指示编译器生成符号表时不改变标识符的名字。
判定是否是C++语言
最常用的地方是做DLL导出的时候, 由于C++导出的DLL中函数被加密掉了,
不能用来动态加载,所以需要被动态加载的DLL需要C的导出方式,于是
# ifdef __cplusplus
extern "C"
{
#endif
//...导出函数的书写
#ifdef __cplusplus
}
#endif
这应该是头文件自动生产的吧,宏定义,这一段不全,整体的作用应该是定义某些变量或者函数,而又不重复定义。