1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的
函数名去找该函数而找不到。(这是作用)
cpp文件调用c文件中函数如下:
c文件中有一函数:
void Transfer(int a; char b);
cpp文件中必须用extern "C"声明该函数如下才可以实行调用:
extern "C" void Transfer(int a; char b);
2、在cpp文件中实现的函数,c文件若要调用,就必须在cpp文件中用extern "C"来声明该函数,否则cpp在编译过程中就
会对其进行名字改编,c文件就找不到该函数的原型。(这是作用)
cpp文件中有一函数:
void Transfer(int a; char b);
但必须用extern "C"来声明后,如下:
extern "C" void Transfer(int a; char b);
c文件才可以调用void Transfer(int a; char b)函数。
总结:以上讲的是两个方面,1中讲cpp调用c,2中讲c调用cpp。
extern "C" 目的:实现C++与C及其它语言的混合编程。
大体上,你可以把extern 和 include 的区别当做是“零售”与“批发”的区别。include是批发,而extern 则是零售。