extern "C"的作用

原创 2016年06月01日 16:10:32

一、 extern "C"的主要作用

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。

二、extern "C"的应用范围

     这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern "C"就是其中的一个策略。

这个功能主要用在下面的情况:

1、C++代码调用C语言代码

2、在C++的头文件中使用

3、在多个人协同开发时,可能有的人比较擅长C语言,而有的人擅长C++,这样的情况下也会有用到

版权声明:本文为博主原创文章,未经博主允许不得转载。

extern C作用总结

extern C使用主要用与在C++代码中调用的C函数的声明,或C++中编译的函数要在C中调用,也即是导入C形式的函数库或者提供C类型的库给C调用,...
  • wangjiaoyu250
  • wangjiaoyu250
  • 2015年01月17日 19:48
  • 1322

C++学习笔记(初级篇)——作用域与“extern”关键字

作用域,顾名思义,就是指某个标识符在程序中的有效区域。 在C++中,按作用域的大小,一般可分为局部作用域和全局作用域。 1.局部作用域 局部作用域用大括号,即{},来定义,大括号括起来的范围就是一个局...
  • Dr_Neo
  • Dr_Neo
  • 2015年12月11日 19:17
  • 1102

关于使用androidstudio2.2通过CMake,NDK开发OpengGL程序中出现的extern “C”问题

开发环境android studio 2.2 android 6.0 API23 CMake 3.6.3155560 LLDB2.3.3614996 NDK 14.0.3770861 通过配...
  • u012200838
  • u012200838
  • 2017年03月22日 16:53
  • 386

C语言 static和extern关键字 对变量的作用

上一讲介绍了static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问;extern用来定义和声明一个外部函数,允许其他文件访问。static和extern对变量也有...
  • VNanyesheshou
  • VNanyesheshou
  • 2016年01月11日 13:27
  • 2239

再谈谈只针对C++编译器/链接器的extern "C"------C与C++的相互调用

说明: 我用的编译器是VC++6.0, 支持.c和.cpp文件的编译。       很多朋友对在变量或者函数前面加extern比较熟悉了, 但对于extern "C"则有点措手不及, 有时。为什么...
  • stpeace
  • stpeace
  • 2015年04月26日 14:36
  • 1671

名字修饰约定extern "C"与extern "C++"浅析

所谓名字修饰约定,就是指变量名、函数名等经过编译后重新输出名称的规则。   比如源代码中函数名称为int Func(int a,int b),经过编译后名称可能为?Func@@YAHHH@Z、?Fu...
  • BeanJoy
  • BeanJoy
  • 2013年06月20日 13:44
  • 8963

c++中的extern “C”

比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL 输出(Export) 的函数,你需要用extern "C" 来强制编译器不要修改你的函数名。 通常,在C 语言的头文...
  • gongmin856
  • gongmin856
  • 2015年03月12日 22:08
  • 725

extern用法 C和C++混编

1、 声明外部变量   现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是     互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子...
  • g200407331
  • g200407331
  • 2016年08月01日 16:56
  • 2343

黑马程序员——C语言之全局变量和局部变量以及static和extern修饰符的作用

概述:本小结着重讲解 1.全局变量和局部变量的差别      2.加上static 、 extern后分别对全局变量、局部变量、函数的影响。 变量的作用域小结: 变量的作用域可分为全局变量和局部变...
  • gissinghxu
  • gissinghxu
  • 2014年11月30日 15:28
  • 626

C/C++函数名称修饰规则及extern "C"的作用

一、函数名称修饰规则 由于c语言不支持函数重载,而c++语言支持函数重载,所以c和c++的函数名称修饰规则是不相同的。   以下面这个Add函数为例,来探讨一下c和c++语言的函数名称修饰规则。 in...
  • XHfight
  • XHfight
  • 2016年06月26日 19:50
  • 1452
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:extern "C"的作用
举报原因:
原因补充:

(最多只允许输入30个字)