gpt4 book ai didi

c - 未初始化的全局变量在 c 中总是默认为 0 吗?

转载 作者:行者123 更新时间:2023-12-01 08:10:19 25 4
gpt4 key购买 nike

我知道未初始化的全局变量在 BSS 段中恢复并且操作系统应该将其初始化为零。

但它是应该而不是必须,而且我从未见过任何标准说未初始化的全局变量必须默认为零,所以是认为这是理所当然的安全吗?

最佳答案

这是来自 C99 Standard Document 的权威答案第 6.7.8 条(第 10 段):

如果具有自动存储持续时间的对象未显式初始化,则其值为不定。如果没有显式初始化具有静态存储持续时间的对象,然后:

  • 如果是指针类型,则初始化为空指针;
  • 如果是算术类型,则初始化为(正数或无符号)零;
  • 如果是聚合,则根据这些规则(递归地)初始化每个成员;
  • 如果它是一个 union ,第一个命名的成员根据这些初始化(递归)规则。

关于c - 未初始化的全局变量在 c 中总是默认为 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663036/

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