全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么
可以,在不同的C文件中以static形式来声明同名全局变量。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。这里难道...
可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。
这里难道不是用static定义吗,上面的声明不明白怎么做?还有如果在头文件中static unsigned char key之后,这个头文件被其他c文件包含,为什么只能有一个赋初值,对包含它的c文件来说,每个变量key应该都是独立的啊为什么只能有一个赋初值
求大神解答,好有加分 展开
这里难道不是用static定义吗,上面的声明不明白怎么做?还有如果在头文件中static unsigned char key之后,这个头文件被其他c文件包含,为什么只能有一个赋初值,对包含它的c文件来说,每个变量key应该都是独立的啊为什么只能有一个赋初值
求大神解答,好有加分 展开
2个回答
展开全部
1、关于全局变量能否在头文件中声明的问题,答案是可以的。
2、在不同的C文件中各自用static声明的全局变量,变量名尽管可能相同,但是各自C文件中的全局变量的作用域为该文件,所以互相之间不干扰。
3、对于在头文件中定义static 变量的问题。包含该头文件的所有c文件都定义了一个该文件的全局变量。更详细的关于这个的问题解析,可以参考下面这个链接:http://www.cnblogs.com/zplutor/archive/2011/08/06/2129401.html
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文件的赋值啊!
能否把你的工程和代码贴出来看看呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询