C99 では、次のようにメンバー名を使用して構造体のメンバーを初期化できることを認識しています。
struct myStruct
{
int i;
char c;
float f;
};
したがって、以下は有効です:
struct myStruct m = {.f = 10.11, .i = 5, .c = 'a'};
また、初期化されていないメンバーは に設定されると言われてい0
ます。そう
struct myStruct m = {.f = 10.11, .c = 'a'};
ここi
に設定されます0
ただし、次の場合:
struct myStruct m = {.f = 10.11, .c = 'a', 6};
i
はまだ 0 に初期化されています。このような複合初期化を行う理由は何ですか。