У меня есть struct
, назовем его struct foo
, к которому я хотел бы добавить переменную atomic_flag
. До сих пор я calloc
изменял структуру, учитывая, что в основном она должна быть инициализирована нулем. Как мне инициализировать элемент atomic_flag
?
struct foo{
//...
atomic_flag a_flg;
//...
};
struct foo *foop = calloc(1,sizeof *foop);
if(!foop) return -1;
//should I be giving up `calloc` (/`malloc`+`memset`) in favor of `malloc`+this?
*foop = (struct foo){ ATOMIC_FLAG_INIT };
Редактировать:
Я обнаружил, что это связано с DR#421 от Jens Gustedt, который предлагает сделать нулевую/инициализацию по умолчанию только для atomic_flag
s. Как я могу узнать, был ли он принят?
*foop = ...
вам все равно нужно сделать точкуfoop
где-то действительной, и что вам нужно явно указать инициализацию для всех членов структуры. - person Some programmer dude   schedule 02.04.2019