介绍一下Extern “C”,它的作用是什么?
2024-09-08 09:53:05
Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。
lExtern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即可
lextern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句:
extern int a;
l 仅仅是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现连接错误。
通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数。
最新文章
- centos7的使用
- [转]Caffe在Linux下的安装,编译,实验
- jstl简介
- 递归神经网络之理解长短期记忆网络(LSTM NetWorks)(转载)
- contentprovider提供程序间共享数据的统一接口
- ExtJs FormPanel布局
- C# 面向对象 , 继承
- JavaScript对象属性 constructor
- Angular单页应用&;AngularJS内部实现原理
- C#中关于DateTime的最大值和最小值
- hdu 2141 Can you find it?(二分查找变例)
- 大数据时代,我们为什么使用hadoop
- debia下安装libjpeg
- 用mui框架开发手机app项目实践中的那些事儿
- php取出数组中的最大值
- https处理的一个过程,对称加密和非对称加密
- IDEA导入JUnit4
- ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
- 集合之HashMap
- css+html+JQuery 万能弹出层,居中显示
热门文章
- Youth is not a time of life, it is a state of mind.
- Mac 下解决虚拟机virtualbox 4.3和windows共享问题
- C/C++知识要点2——STL中Vector、Map、Set容器的实现原理
- 第一个MapReduce程序——WordCount
- androidproject有红色叹号的解决方式
- 【hdu】Mayor&;#39;s posters(线段树区间问题)
- [leetcode解题记录]Jump Game和Jump Game II
- android控件之间事件传递
- 6.游戏特别离不开脚本(4)-应该避免将集合框架对象传给JS
- To verify Hadoop releases using GPG