我正在学习C语言,在学习过程中,我遇到了全局变量和extern关键字。我在这个网站( Global variable in C are static or not )上读到了有关它们的信息,并发现
Global variables are extern by default
但我知道全局变量的默认值为0
。
所以,我很困惑:带有 extern
关键字的变量怎么可能只声明而不定义。
最佳答案
So, I am confused how can it be possible, as variables with extern keyword are only declared not defined.
- 默认情况下,全局变量是 extern - 这意味着它们可以被其他变量使用 translation unit (可以简单地是其他源文件)。
- 也就是说,全局变量不能自动从其他源文件中使用,除非这些源文件上有相应的
extern
声明。 - 确实,
extern
关键字没有任何初始化,因为它只是声明。因此,全局变量(来自原始源文件)的自动值 (0) 是在它们自己的定义处获得的。 - 请注意,只能有一个定义(在原始源文件中),但可以有多个
extern
声明(在其他源文件中)。
关于c - 全局变量默认是extern吗?如果是,那么为什么它们的默认值是 "0 "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775916/