C代码中如何调用C++? C++中如何调用C ?

参考文章:http://www.cppblog.com/franksunny/archive/2007/11/29/37510.html

http://www.cnblogs.com/Yogurshine/p/3913073.html

 

注意这里的C调用C++或者C++调用C意思是.c文件中调用.cpp文件中代码,或者相反。

集成开发环境如VC++6.0或者vs都是以文件后缀来区别当前要编译的是C代码还是C++代码,然后采用响应的编译、调用协议等。

使用extern "C" 主要是因为C编译器编译函数时不带参数的类型信息,只包含函数的符号名字。如
int foo( float x )
C编译器会将此函数编译成类似_foo的符号,C连接器只要找到了调用函数的符号,就认为连接成功。
而C++编译器为了实现函数重载,会在编译时带上函数的参数信息。如它可以把上面的函数编译成类似于_foo_float这样的符号。
所以,C调用C++,使用extern "C"则是告诉编译器依照C的方式来编译封装接口,当然接口函数里面的C++语法还是按C++方式编译。

 

posted @ 2021-12-19 17:17  西门吹雪~~~  阅读(314)  评论(0编辑  收藏  举报