1.在C++程序中调用C编译器编译后的函数,为什么要加extern "C"?
C++语言支持函数重载,而C不支持。函数编译后,C和C++函数oji文件中的格式是不一样的,假设同样是void func(void)函数,C编译后库中的名字为_func,而C++的则会产生类似于_func_int_int的函数名,即C++函数库的名字中含有参数和返回值的类型。C++提供了C连接交换指定符号extern "C"来解决名字问题。
1.在C++程序中调用C编译器编译后的函数,为什么要加extern "C"?
C++语言支持函数重载,而C不支持。函数编译后,C和C++函数oji文件中的格式是不一样的,假设同样是void func(void)函数,C编译后库中的名字为_func,而C++的则会产生类似于_func_int_int的函数名,即C++函数库的名字中含有参数和返回值的类型。C++提供了C连接交换指定符号extern "C"来解决名字问题。