c++函数名字的产生和c函数名字的产生是不一样的.
为了实现静态的多态--重载,c++的函数名实际上是由函数名和参数类型列表通过某种方式组合而来的.而c语言采用的仅仅可能是函数名前加下划线.
当c语言调用c++库或c++语言调用c库时,库要导出的函数的头文件应当写成
- #ifndef LIB_H
- #define LIB_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif //__cplusplus
- 你的库要导出的函数的声明.
- #ifdef __cplusplus
- }
- #endif //__cplusplus
- #endif //LIB_H
通过上面的声明,当c程序调用c++库时,编译c++库时,编译器会产生c形式的函数名
当c++程序使用c库时,告诉c++编译器,这些函数使用的是c形式的函数名。