标签:
假设存在一个用C语言编写的函数
int func(void)
{
/*此处省略三千行*/
}
(1)仅在.c文件中调用该函数。
只需在.h文件中作如下声明
int func(void);
(2)仅在.cpp文件中调用该函数。
需在.h文件中作如下声明
extern "C"
{
int func(void);
}
此处需要说明一下:C++支持函数重载而C语言不支持,同一函数被C和C++编译器编译后的名字不同,使用extern "C "解决名字匹配问题。
(3)既可以在.c文件又可在.cpp中调用该函数。
需要在头文件中做一个兼容,兼容以上两种情况,在不同的情况下,显示其中一种。
#ifdef __cplusplus
extern "C"
{
#endif
int func(void);
#ifdef __cplusplus
}
#endif
标签:
原文地址:http://www.cnblogs.com/shijianchuzhenzhi/p/4304950.html