Ist eine leere Initialisierungsliste ein gültiger C-Code?
Es ist üblich zu verwenden{0}
zu initialisieren astruct
oder einarray
Betrachten Sie jedoch den Fall, dass das erste Feld kein Skalartyp ist. Wenn das erste Feld vonstruct Person
ist ein andererstruct
oder Array, dann führt diese Zeile zu einem Fehler (error: missing braces around initializer
).
struct Person person = {0};
Zumindest erlaubt mir GCC, eine leere Initialisierungsliste zu verwenden, um dasselbe zu erreichen
struct Person person = {};
Aber ist das gültiger C-Code?
Außerdem: Gibt diese Zeile garantiert dasselbe Verhalten aus, d. H. Eine Null-Initialisierungstruct
?
struct Person person;