找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9085|回复: 0
收起左侧

文件间调用变量(extern,include)

[复制链接]
ID:98924 发表于 2015-12-9 02:42 | 显示全部楼层 |阅读模式

文件间调用变量(extern,include)



   首先要搞清楚的是.h头文件中都是一些声明性的语句,是不分配内存的,所以头文件中有对函数的声明,有define语句,有没有实例化的结构体定义,但是没有对变量的定义(比如 int a),有的只是对外变量的声明(extern int a)。


  因为全局变量一般定义在原文件.c中(假设是a.c),对于一个文件调用另一个文件的全局变量,我们不能用#include包含源文件而只能包含头文件,所以常用的方法是用extern  int a来声明外部变量。   还有一种方法是可以是在a.c文件中定义了全局变量int global_num ,可以在a.h头文件中写extern int global_num 这样其他源文件可以通过include a.h来声明她是外部变量就可以了.


  对于一个文件调用另一个文件中的函数,最常用的是在.h头文件中配上extern声明函数,其他源文件可以通过#include该头文件来声明函数并且在调用该函数。  也可以是在a.c中定义该函数int fun()后 ,在 b.c文件中使用extern int  fun()来声明该函数是外部定义后并实行调用。


  此外,extern修饰符可用于指示C或者C++函数的调用规范。比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表