【发布时间】:2020-07-27 19:47:43
【问题描述】:
考虑以下结构和函数来创建结构:
#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)。
【问题讨论】:
标签: c performance c99 micro-optimization designated-initializer