gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:13 43 4
gpt4 key购买 nike

我正在学习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.

  • 全局变量默认是外部变量——这意味着它们可以被其他人使用translation unit (可以只是其他源文件)。
  • 也就是说,全局变量不会自动从其他源文件中使用,除非这些源文件上有相应的 extern 声明。
  • 没错,extern 关键字没有任何初始化,因为它只是声明。因此全局变量(来自原始源文件)的自动值(0)是在它们自己的定义处获得的。
  • 请注意,只能有一个定义(在原始源文件中),但可以有多个 extern 声明(在其他源文件中)。

关于c - 默认情况下全局变量是extern吗?如果是,那么为什么它们具有默认值 "0 "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775916/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com