在c++中,允许同名函数的存在,所以编译器会对函数名重新进行编码。在c++代码中包含c语言头文件时,对函数重新进行编码,会导致与c中的函数原型不一致,出现函数找不到的情况,为了让c语言实现的函数在c++中可以调用,需要在头文件中加上如下代码:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
它表示如果c++中调用这里的函数时,编译器不能对函数名重新进行编码。
在c++中,允许同名函数的存在,所以编译器会对函数名重新进行编码。在c++代码中包含c语言头文件时,对函数重新进行编码,会导致与c中的函数原型不一致,出现函数找不到的情况,为了让c语言实现的函数在c++中可以调用,需要在头文件中加上如下代码:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
它表示如果c++中调用这里的函数时,编译器不能对函数名重新进行编码。