首页 文章

默认情况下全局变量是extern吗?如果是,那么为什么他们有默认值“0”?

提问于
浏览
2

我正在学习C语言,在此期间,我面对全局变量和extern关键字 . 我在这个网站(Global variable in C are static or not)上读到了它们并发现了

默认情况下,全局变量是extern

但我知道全局变量的默认值是 0 .
所以,我感到很困惑:如何才能声明 extern 关键字的变量才被声明和定义 .

1 回答

  • 2

    所以,我很困惑,它是如何可能的,因为extern关键字的变量只声明未定义 .

    • 默认情况下全局变量是extern - 这意味着它们可以被其他translation unit使用(可以只是其他源文件) .

    • 表示全局变量不能自动从其他源文件中使用,除非这些源文件上有相应的 extern 声明 .

    • 确实 extern 关键字没有任何初始化,因为它只是声明 . 因此,全局变量(来自原始源文件)的自动值(0)是在它们自己的定义点获得的 .

    • 请注意,只能有一个定义(在原始源文件中),但有多个 extern 声明(在其他源文件上) .

相关问题