C与C++的相互调用问题
2011-10-03 20:51
218 查看
#ifdef __cplusplus extern "C" { #endif int add(int a, int b); #ifdef __cplusplus } #endif int add(int a, int b) { return a+b; } // 在声明的时候用 extern "C" int add(int a, int b) C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y); 该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。 c++ 因为作用域的关系,对函数名会进行转化 例如将 add() 变成 mymathadd12()。 而使用了 extern “c” 就会使编译器不进行转化,而按照原函数名处理。C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。例如extern "C"{这里就是你头文件,全局变量,main函数的地方}
相关文章推荐
- c++ 类之间的相互调用问题
- 如何有效解决C与C++的相互调用问题
- C++细节问题1-类的相互调用
- C与C++的相互调用问题
- 如何有效解决C与C++的相互调用问题
- C函数和C++函数相互调用的问题(★firecat推荐★)
- c++和c语言中的函数相互调用的问题
- 【c++】C与C++的相互调用问题&opencv list not found
- (转)如何有效解决C与C++的相互调用问题
- C&C++——C函数与C++函数相互调用问题
- 关于WinRT中c++和c#相互调用的问题
- c++ 类之间的相互调用问题 .
- C&C++——C函数与C++函数相互调用问题
- 如何有效解决C与C++的相互调用问题
- C语言 C++相互调用问题
- c++两个类相互调用需要注意的问题
- [置顶] 问题请教:C#与C++相互调用
- 如何有效解决C与C++的相互调用问题
- C++随笔——成员函数的相互调用问题:
- 关于WinRT中c++和c#相互调用的问题