gpt4 book ai didi

c - 未显式初始化的全局 union 变量的哪个成员将被隐式初始化为 0?

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

例如

union
{
int n;
void *p;
} u;

u.n或u.p的初始值是否等于0?

需要注意的是,NULL 指针不一定存储在全零位中。因此,即使 u.n 和 u.p 的大小相同,

u.n == 0

不保证

u.p == 0

反之亦然。

(抱歉我的英语不好)

最佳答案

如果具有静态存储持续时间的对象未明确初始化,则:

—如果是指针类型,则初始化为空指针;

—如果是算术类型,则初始化为(正数或无符号)零;

—如果是聚合,则根据这些规则(递归地)初始化每个成员;

——如果它是一个 union ,第一个命名的成员根据这些规则被初始化(递归)。

因此 u.n 将被初始化为零并且 u.p 未确定。

编辑:对评论的回应

以上信息复制自 ISO/IEC 9899:201x 6.7.9.10

关于c - 未显式初始化的全局 union 变量的哪个成员将被隐式初始化为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18788236/

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