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

如题所述

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

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

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

扩展资料:

使用注意

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

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

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

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
包含该全局变量所在的头文件,并在使用改变量的上方加入外部引用声明: extern "变量名" 即可追问

不引用头文件只声明行吗?

追答

新手要勤动手呀!!! 不然进步很慢的,试试不就知道了嘛。因为是外部只声明的话如果是写windows内核驱动的时候,是系统变量就可以!但一般都是用户自己的外部变量的多!不包含头文件只声明肯定不行的

本回答被提问者采纳
第2个回答  推荐于2018-02-27
你说的好像不对吧,
正确的解决办法:使用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;本回答被网友采纳
第3个回答  2014-03-29
能,只要预先声明就可以了追问

是不是在文件A中定义全局变量在文件B中声明就可以被B始用了?

追答

是的。除非变量有static linkage

第4个回答  2019-04-22
定义一个static全局变量就可以了
相似回答