当使用 G++(例如 Linux 上的 4.5 版)时,任何人都可以解释如果用户为混合 C/C++ 系统编写头文件会发生什么,如下所示:
#ifdef __cplusplus
extern "C" {
int myCPPfunc(some_arg_list....); /* a C++ function */
}
#endif
但这里 myCPPfunc()
是一个普通的 C++ 函数,内部有一个类 def - 即它被错误地标记为 C 函数。
这会产生什么影响?
最佳答案
这样做的主要影响是你不能重载它,例如这是合法的:
int myCPPfunc(int a);
int myCPPfunc(char a);
但这不是:
extern "C"
{
int myCPPfunc(int a);
int myCPPfunc(char a);
}
关于c++ - 使用 g++ 时使用 extern "C"{ 对 C++ 代码的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197168/