c语言 - 全局变量默认是 extern 吗?如果是,那么为什么它们有默认值" 0 "?



我正在学习C语言,在此期间,我遇到了全局变量和extern关键字。我在这个网站上阅读了它们(C 中的全局变量是否是静态的),发现

默认情况下,全局变量是外部变量

但我知道全局变量的默认值是 0 .
所以,我很困惑:怎么可能只声明extern关键字的变量而不定义。

所以,我很困惑这怎么可能,因为带有 extern 关键字的变量只声明未定义。

  • 默认情况下,全局变量是 extern - 这意味着它们可以被其他翻译单元使用(可以只是其他源文件)。
  • 上述全局变量不能自动从其他源文件中使用,除非这些源文件上有相应的extern声明。
  • 没错,extern 关键字没有任何初始化,因为它只是声明。因此,全局变量(来自原始源文件)的自动值 (0) 是在它们自己的定义点获得的。
  • 请注意,只能有一个定义(在原始源文件中),但extern声明(在其他源文件中)可以一样多。

相关内容

  • 没有找到相关文章

最新更新