c文件中的 extern “C”
由于编译器对 C++ 和 C语言的函数名处理不同,在C++ 中调用 C 代码时, 需要在 C 代码中加上extern “C”, 用来告诉编译器这部分代码按C语言编译。
C++支持重载,编译时会将参数类型也加到编译后的代码中,而C不支持重载,编译函数时一般只包含函数名,不会带上函数的参数类型。为了实现代码的复用,因此加上 extern “C”, 来兼容 C++ 中调用的C代码。
需要注意, 不可以将extern “C” 添加在函数内部;
如果函数有多个声明,可以都加extern “C”,
也可以只出现在第一次声明中,后面的声明会接受第一个链接指示符的规则;
除extern “C”, 还有extern “FORTRAN” 等。