構造体の代入について
構造体は通常の変数と同じようにまとめて代入できる
typedef struct Hoge_tag { int x; char y[100]; } Hoge; Hoge hoge = {0, "Hello", }; Hoge fuga; fuga = hoge;
メンバに配列があっても問題なく代入可能。ちゃんとコンパイラが面倒見てくれる。
ただしメンバにポインタがあると単にポインタの値をコピーするだけになる。*1それでは困る場合は、実体をリンクして、その先をコピーするようなコードを自分で書かなければならない。
構造体の代入を使っていれば、構造体に変更があっても代入部分には一切手を加える必要がない。
なのだが、現在参画しているプロジェクトはなぜかメンバー単位に代入していくようになっている。なぜそうなのか聞きそびれて今さら聞きにくくなってしまった。どうしたものか。
*1:浅いコピー・シャローコピー