extern 用法详解
来源:互联网 发布:谷歌数据备份 编辑:程序博客网 时间:2024/06/07 02:28
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。(extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义 )
大概extern 用法为如下几种方式:
其主要用法是:
- 在此文件中声明别的文件的变量时用extern
- 在cpp程序文件中用到c的库函数时用extern
头文件.h
extern volatile SERV103_LINK servLink;extern YaoXinStrucType *pstYx;static int ycSpace = 500;static int yxSpace = 1000;static int sjbgSpace = 10*1000;static int gzbgSpace = 30*1000;然后需要在某个.cpp 文件中引用
某一个 .cpp (多个cpp)
iec103_serv_send_sjbg((SERV103_LINK *)&servLink ,sjbgData, 1);
ST_RET iec103_serv_send_zjbg(SERV103_LINK *servLink, SoeItemType *zjbgData, ST_UCHAR sendReason);
说明:我是在不同的cpp 中调用
函数与变量都一样:(上面的例子就是在函数中使用)
2. extern修饰函数声明。从本质上来讲,变量和函数没有区别。函数名是指向函数二进制块开头处的指针。如果文件a.c需要引用b.c中的函数,比如在b.c中原型是int fun(int mu),那么就可以在a.c中声明extern int fun(int mu),然后就能使用fun来做任何事情。就像变量的声明一样,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范围中。对其他模块中函数的引用,最常用的方法是包含这些函数声明的头文件。使用extern和包含头文件来引用函数有什么区别呢?extern的引用方式比包含头文件要简洁得多!extern的使用方法是直接了当的,想引用哪个函数就用extern声明哪个函数。这大概是KISS原则的一种体现吧!这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。3. 此外,extern修饰符可用于指示C或者C++函数的调用规范。比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同。
4 0
- extern用法详解
- extern用法详解
- extern 用法详解
- extern用法详解(转)
- extern用法详解(转)
- extern用法详解
- extern用法详解
- extern用法详解[转]
- extern用法详解
- extern用法详解(转)
- extern用法详解
- extern用法详解(转)
- extern用法详解(转)
- extern用法详解
- extern用法详解(转)
- extern用法详解(转)
- extern用法详解【转】
- extern用法详解(转)
- 使用阿里云PTS测试LAMP环境性能
- GPS之MTK平台代码小结以及gps协议注释
- html视频嵌入代码
- 把JPG图片转换成PDF格式的格式转换器
- eeupdate 更新MAC地址
- extern 用法详解
- 为Redmine的项目加上起止时间
- 数据库查询优化技巧准则
- weblogic9.2 重置密码
- java排列组合算法代码实现
- 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”
- 感悟《C和指针》——3.数据
- Windows系统三种定时器的分析
- [Android][转]android中string.xml中%1$s、%1$d等的用法