Обычно используется {0}
для инициализации struct
или array
, но рассмотрим случай, когда первое поле не является скалярным типом. Если первым полем struct Person
является другой struct
или массив, то эта строка приведет к ошибке (error: missing braces around initializer
).
struct Person person = {0};
По крайней мере GCC позволяет мне использовать пустой список инициализаций для выполнения того же самого
struct Person person = {};
Но этот допустимый C-код?
Также: гарантируется ли эта строка тем же самым поведением, то есть нулевой инициализированный struct
?
struct Person person;