質問: C言語の構造体の関数への渡し方について
回答: ->構造体などのいくつもデータをもっているものであると、値渡しではコピーをしてしまうので処理速度に影響を及ぼすのではないかと思っています。 ->逆に参照渡しだと何かしらのコーディングミスで値を書き換えてしまう危険性云々・・・です。 質問にあるとおり、お互いメリット・デメリットはあるので状況によって使い分けたほうがいいと思います。 処理効率を意識するのであればできるだけ参照渡しやポインター渡しでやったほうがいいと思います。 ただし、実引数の値をかえずに関数内で仮引数の値を変える場合は値渡しでやらないといけません。 この場合、関数内で変数を宣言してそれに構造体(仮引数)のメンバーの値を入れて使用すれば参照渡しやポインター渡しでもできます。 参照渡しやポインター渡しでやる場合、ひとつのメンバーだけかえるのであればそれでいいと思いますが、複数のメンバーをかえるのであればその分関数内での変数宣言が必要になるので値渡しでもいいのではということになります。 そのあたりは状況により使い分けるべきだと思います。 上記に書いたことは一例ですので参考程度に解釈してください。