gpt4 book ai didi

c - 复制部分初始化的结构在 C 中定义良好吗?

转载 作者:行者123 更新时间:2023-11-30 15:16:14 25 4
gpt4 key购买 nike

我最近了解到,通过简单的构造或赋值来复制部分初始化的结构是 undefined in C++ 。这在 C 中是否同样成立,或者标准是否保证初始化和赋值的行为类似于 memcpy

typedef struct { int i; int j; } A;

void foo() {
A x;
x.i = 0;
// Leave x.j indeterminate. Is the following well defined?
A y = x;
y.j = y.i + 1;
}

最佳答案

x 不是“部分初始化”,它根本没有初始化。在初始化程序中读取 xy 会将“不确定”的值(如果有人可以这么说的话)传播到 y。如果 int 在您的平台上可以有陷阱表示,那么这已经是一个错误。但是您不会读取该不确定字段y.j,因此该特定分配没有问题。

关于c - 复制部分初始化的结构在 C 中定义良好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33173080/

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