よく忘れて本を見るのでメモ
typedef struct { int c; int d; } hoge_t; typedef struct { int a; int b; hoge_t hoge; } piyo_t;
入れ子の構造体を用意
初期値を順番に書く方法
piyo_t p1 = { 1,2,{3,4} }; // 普通な書き方 piyo_t p2 = { 1,2, 3,4 }; // 順番さえあってればどうでもいい piyo_t p3 = { 1,2, }; // 途中までしかないときは、残りはゼロになる
最後のカンマは無視されるので、付けっぱなしの方が楽
変数名を指定する方法
// 昔風の書き方 piyo_t p4 = { a : 1, // 変数名 コロン 初期値 b : 2, hoge : { // 入れ子も同じように c : 3, d : 4, }, };
// 今風の書き方 piyo_t p5 = { .a = 1, // ドット変数名 イコール 初期値 .b = 2, .hoge = { // 入れ子も同じように .c = 3, .d = 4, }, };
piyo_t p6 = { .a = 1, .b = 2, .hoge.c = 3, .hoge.d = 4, };
要素数が少ないうちは、この書き方の方が見やすくていい