全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么

可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。这里难道... 可以,在不同的C文件中以static形式来声明同名全局变量。   可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

这里难道不是用static定义吗,上面的声明不明白怎么做?还有如果在头文件中static unsigned char key之后,这个头文件被其他c文件包含,为什么只能有一个赋初值,对包含它的c文件来说,每个变量key应该都是独立的啊为什么只能有一个赋初值
求大神解答,好有加分
展开
 我来答
woshizjp
推荐于2017-10-09 · TA获得超过351个赞
知道小有建树答主
回答量:322
采纳率:100%
帮助的人:319万
展开全部
1、关于全局变量能否在头文件中声明的问题,答案是可以的。
2、在不同的C文件中各自用static声明的全局变量,变量名尽管可能相同,但是各自C文件中的全局变量的作用域为该文件,所以互相之间不干扰。
3、对于在头文件中定义static 变量的问题。包含该头文件的所有c文件都定义了一个该文件的全局变量。更详细的关于这个的问题解析,可以参考下面这个链接:http://www.cnblogs.com/zplutor/archive/2011/08/06/2129401.html
追问
链接里面认为在不同c文件中定义不同的static全局变量是各自独立的变量,那你还是没回答我的为什么只能由一个c文件赋值
追答
我想知道你的初值是怎么赋值的?
你完全可以写个Init函数,对每个C文件的key赋予不同的值,而且这样是完全正确的。
至于你说的只能由一个C文件赋值,我测试的结果也可以在不同的C文件的赋值啊!
能否把你的工程和代码贴出来看看呢?
我是真的真幸福
2019-10-25
知道答主
回答量:68
采纳率:0%
帮助的人:6.2万
展开全部
赋值才占内存单元,声明不占,声明一次时链接就不会出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式