extern "C"用法

引言:

        extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。
         比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL输出(Export)的函数,你需要用extern "C"来强制编译器不要修改你的函数名。

1C文件里面的extern的用法

如果头文件采用的是cExample.h

实现头文件里面的方法在cExample.c

调用头文件里面的方法的函数在cFile.c

编译方式为:gcc -c cExample.c ;gcc -c cFile.cpp;gcc -o test cFile.o cExample.o生成可执行文件test

Ps:如果把头文件里面的extern加在函数的前面同样可以进行编译

2C++文件里面的extern的用法(C++文件里面包含C语言的头文件)

调用头文件里面的方法的函数在cppFile.cpp

编译该文件可以实现在C++文件里面编译C的头文件

编译的方法为:


生成可执行文件test7

Ps:如果加上头文件cExample.h里面的extern也可以进行编译

3C++文件里面使用extern

如果头文件采用的是cppExample.h

实现头文件里面的方法在cppExample.cpp


调用头文件里面的方法的函数在cppFile.cpp


Ps:如果cppExample.h里面采用extern C int add(int x,int y);进行编译也可通过,同样采用extern int add(int x,int y);也可以通过。

编译方式为:g++ -c cppExample.c ;g++ -c cppFile.cpp;g++ -o test cppFile.o cppExample.o生成可可执行文件test


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值