extern "C"

来源:互联网 发布:嵌入式和单片机的区别 编辑:程序博客网 时间:2024/05/16 05:45

extent "C" 的作用是让C++代码可以调用C编译器编译出来的函数

 

C++和C对同一函数,编译后的函数名是不同的

对于这样一个函数:int add(int a, float b)

C编译后的函数名类似于这样:_add

C++编译后的函数名类似于这样:_add_int_float(C++编译后函数名比C复杂是支持函数重载的需要)

 

当C++调用C编译后的函数时,也会按C++编译器的改名规则去寻找函数,比如C++代码中调用了int add(int a, float b)这个函数,

就会去查找:_add_int_float。但是因为这个函数是C编译出来的,在二进制文件中的名字是:_add,所以会找不到这个函数

 

如果使用extent "C" 声明int add(int a, float b)函数,则告诉C++编译器,这个函数是C编译出来的,在二进制文件中应该查找_add函数,

而不是_add_int_float

 

 友情链接:网购优惠信息网

原创粉丝点击