#ifdef __cplusplus是什么意思?

求高手回答,不懂的不要去百度文库copy了。。 那个看不懂谢谢!
2024-12-28 22:18:07
推荐回答(3个)
回答1:

首先,__cplusplus是cpp中的自定义宏,定义这个宏的话表示这是一段cpp的代码。

举个在cpp程序中常见的代码:

#ifdef __cplusplus
extern "C " {
#endif
…………
…………
#ifdef __cplusplus
}
#endif

上面代码的意思:如果编译器在编译cpp文件,那么__cplusplus宏就会被定义;如果是一个c文件在被编译那么__STDC__宏就会被定义。
如果整个程序是用C++写的,那么在C++里面写C要加上extern "C " {}进行说明。至于extern "C"这个指示编译器生成符号表时不改变标识符的名字。

回答2:

判定是否是C++语言

最常用的地方是做DLL导出的时候, 由于C++导出的DLL中函数被加密掉了,
不能用来动态加载,所以需要被动态加载的DLL需要C的导出方式,于是
# ifdef __cplusplus
extern "C"
{
#endif

//...导出函数的书写

#ifdef __cplusplus
}
#endif

回答3:

这应该是头文件自动生产的吧,宏定义,这一段不全,整体的作用应该是定义某些变量或者函数,而又不重复定义。