在C语言中,一个文件中定义的 全局变量,在另一个文件中能用吗?

 我来答
莫道無情
2019-07-07 · TA获得超过1.5万个赞
知道答主
回答量:317
采纳率:100%
帮助的人:8.1万
展开全部

全局变量extern可以在其他源程序中使用;全局变量static只能在本程序中使用。

全局变量是使用相同的内存块在整个类中存储一个值。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

扩展资料:

使用注意

全局变量的存在主要有以下一些原因:

1、使用全局变量会占用更多的内存(因为其生命期长),不过在计算机配置很高的今天,这个不应该算什么问题,除非使用的是巨大对象的全局变量,能避免就一定要避免。

2、使用全局变量程序运行时速度更快一些(因为内存不需要再分配),同样也快不了多少。

3、对于局部变量的名字空间污染,这个在不使用太多变量时是可以避免的。

4、当全局变量与局部变量重名的时候,起作用的是局部变量,全局变量被屏蔽掉。

5、还可以用extern在函数外对全局变量声明,使全局变量的作用域从声明处到文件的结束。

6、全局变量的优先度低于局部变量。

参考资料:百度百科-全局变量

_Hoiker
推荐于2017-11-26
知道答主
回答量:11
采纳率:0%
帮助的人:8.3万
展开全部
包含该全局变量所在的头文件,并在使用改变量的上方加入外部引用声明: extern "变量名" 即可
追问
不引用头文件只声明行吗?
追答
新手要勤动手呀!!! 不然进步很慢的,试试不就知道了嘛。因为是外部只声明的话如果是写windows内核驱动的时候,是系统变量就可以!但一般都是用户自己的外部变量的多!不包含头文件只声明肯定不行的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友53c2cac
推荐于2018-02-27
知道答主
回答量:1
采纳率:100%
帮助的人:880
引用_Hoiker的回答:
包含该全局变量所在的头文件,并在使用改变量的上方加入外部引用声明: extern "变量名" 即可
展开全部
你说的好像不对吧,
正确的解决办法:使用extern关键字来声明变量为外部变量。具体说就是在其中一个c文件中定义一个全局变量key,然后在另一个要使用key这个变量的c文件中使用extern关键字声明一次,说明这个变量为外部变量,是在其他的c文件中定义的全局变量。请注意我这里的用词:定义和声明。例如在main.c文件中定义变量key,在common.c文件中声明key变量为外部变量,这样这两个文件中就能共享这个变量key了。
(1)main.c文件
#include "common.h"
unsigned char key;

(2)common.c文件:

#include "common.h"
extern unsigned char key;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-29
展开全部
能,只要预先声明就可以了
追问
是不是在文件A中定义全局变量在文件B中声明就可以被B始用了?
追答
是的。除非变量有static linkage
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
time大叔VS萝莉
2019-04-22
知道答主
回答量:3
采纳率:0%
帮助的人:2199
展开全部
定义一个static全局变量就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式