Struct Initialization¶
Good Old Struct Initialization¶
struct person
{
char fn[16];
char ln[16];
int age;
int height;
};
struct person me = { "Joerg", "Faschingbauer", 50, 172 };
As always: Ambiguity
One can only guess as to what the initializer means
Imagine somebody’s name is “Beman Dawes”
age
?height
? Or is itweight
?
Have to lookup the definition of
struct person
C99 Designated Initializer¶
struct person me = {
.fn = "Joerg",
.ln = "Faschingbauer",
.age = 50,
.height = 172
};
Consequences:
A couple more characters of typing
Safety: when member names (semantics?) change, the compiler forces checking
Clarity