编译器在编译过程会对一些函数,变量重命名:加上一些字符和符号。这种重命名的过程在编译器内部是可逆的,错误提示的代码为逆过程,即恢复命名。
因为存在这种重命名的过程,c++ 函数在提供给 c 函数使用的过程会出现一些问题。例如找不到相应的函数,未实现函数。
一些解决办法: _cplusplus
_cplusplus 标识c++编译器
#ifdef __cplusplus
Extern “C”
//声明定义的函数在编译的过程中不会被修改函数名称。
#endif
使用方法
1,在头文件里边使用
#ifdef __cplusplus
Extern “C”{
Int functions(void *);
}
2,在调用头文件的时候使用
#ifdef __cplusplus
Extern “C”{
#include “head.h”
}
#endif
更赞同方法1.理由:文件的使用不依赖外部设计实现。
具体很明显的使用区别尚未体会。欢迎补充。