Помислете за следната структура и функция, за да създадете структурата:
#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).