gpt4 book ai didi

c - 未初始化的 C 结构字段

转载 作者:行者123 更新时间:2023-11-30 20:49:56 24 4
gpt4 key购买 nike

尝试访问 C 中未初始化的结构体字段是否被视为未定义行为?

struct s { int i; };
struct s a;
printf("%d", a.i);

最佳答案

取决于变量的存储持续时间:

struct
{
int a;
int b;
}c;

int main()
{

struct
{
int a;
int b;
}e;

static struct
{
int a;
int b;
}s;

printf("%d", c.a); // <- correct no UB
printf("%d", s.a); // <- correct no UB
printf("%d", e.a); // <- UB
}

结构cs具有静态存储持续时间,并且它们始终被初始化。如果程序员没有显式地初始化它们,它们将被归零。

结构e具有自动存储期限,如果程序员未显式初始化,则不会归零

关于c - 未初始化的 C 结构字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56192942/

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