Czy pusta lista inicjalizatora jest prawidłowym kodem C?
Jest powszechne w użyciu{0}
zainicjować astruct
lubarray
ale rozważmy przypadek, gdy pierwsze pole nie jest typem skalarnym. Jeśli pierwsze polestruct Person
jest innystruct
lub tablica, to linia spowoduje błąd (error: missing braces around initializer
).
struct Person person = {0};
Przynajmniej GCC pozwala mi używać pustej listy inicjalizatora do wykonania tego samego
struct Person person = {};
Ale czy to jest prawidłowy kod C?
Ponadto: Czy ta linia gwarantuje takie samo zachowanie, tzn. Inicjalizację zerowąstruct
?
struct Person person;