What happens to fields not named by a designated initializer?
问题 In C99 (and not in C++), it's possible to initialize structs using this syntax: struct info { char name[8+1]; int sz; int typ; }; struct info arr[] = { [0] = { .sz = 20, .name = "abc" }, [9] = { .sz = -1, .name = "" } }; What happens to the unspecified fields? 回答1: They are zeroed. From the C99 standard §6.7.8 (Initialization)/21, If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate, or fewer characters in a string literal used to