考虑以下结构和函数来创建结构:
#define MAX_ELEMS 1000
struct stuff {
double magic;
bool is_valid[MAX_ELEMS];
double values[MAX_ELEMS];
};
struct stuff make_stuff(double magic) {
return (struct stuff){
.magic = magic
};
}
在我的情况下,我需要stuff.magic
初始化为给定的值,并将stuff.is_valid
数组初始化为零,但我不想初始化stuff.values
(因为它们被保护stuff.is_valid
并稍后按需初始化)。
我可以使用指定的初始化器来实现这一点吗?
我知道我可以在没有的情况下实现它,但这更丑陋且更容易出错(除其他原因外,因为我现在需要显式归零stuff.is_valid
,也许使用 memset)。