怎样在C语言中用H头文件声明一个外部struct变量

 我来答
手机用户80533
推荐于2017-11-26 · TA获得超过102个赞
知道答主
回答量:105
采纳率:0%
帮助的人:119万
展开全部
要定义一个struct变量,首先要定义一个结构体变量类型名 即struct 结构体名 例如定义一个按键属性结构体(包含 是否有按键值更新(renew)和按键值(num)两个成员) struct Key_attribute{unsigned char renew; unsigned char num;};到此只是定义了一个类型名为 struct Key_attribute的结构体变量类型,仅仅是定义了一个类型而已,不生成代码,它的的属性和 int ,char,一样,只是一个类型说明。 有了类型之后就可以像 int i;定义i为一个整型变量一样,利用刚刚声明过的结构体变量类型struct Key_attribute定义一个类型属性如struct Key_attribute(包含 两个unsigned char 无符号字符型变量 成员)的结构体变量了。 如 struct Key_attribute Key; //就定义了Key 为一类型为struct attribute 的结构体变量 此时Key 就会产生代码,占用内存了。 具体应用如下 在KEY.H头文件中声明Key为一外部结构体变量 #ifndef _KEY_H_ #define _KEY_H_ 。。。。 struct Key_attribute//定义一个名为 struct Key_attribute 的结构体类型。类型属性为包含两个无符号字符型变量成员{unsigned char renew; unsigned char num;};//到此就定义好 struct Key_attribute 类型了,只要C文件中包含 "KEY.H"就可以直接像用 int 定义变量一样,定义struct Key_attribute 类型的结构体变量了 //如果 file1.c中包含 "KEY.H" 并定义了 struct Key_attributeKey;则只要在"KEY.H"文件中用一条外部变量声明 extern struct Key_attribute Key,其它文件只要包含"KEY.H"就可以对结构体变量Key进行操作了。 extern struct Key_attribute Key; //声明变量Key 为一属性为struct Key_attribute的外部结构体变量,任何包含"KEY.H"都可以不用再次声明Key为外部变量而直接使用结构体变量Key了。 //这样做的好处是,如果在头文件里面定义变量则编译器会为调用头文件里的同一变量的不同文件分配不同的存储空间,造成存储空间浪费。
风若远去何人留
推荐于2016-05-18 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
前提: 该变量必须为全局变量,不能是静态全局变量或局部变量。
方法:
1 在头文件中引用定义对应结构体的头文件,或者直接在该头文件中定义结构体。
2 声明变量。声明格式为
extern struct type var_name;
其中,type为结构体类型名,var_name为结构体变量名。
1 需要注意的是,extern可以省略,但带上extern会使程序可读性更好。
2 不能有初始化值,一旦带有初始值,就会被系统按照定义处理,导致编译出错。

按照以上方式声明后,凡是引用该头文件的,都可以直接使用该结构体变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式