• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 共用体の構造体の引数設定)

C言語 共用体の構造体の引数設定

このQ&Aのポイント
  • 共用体と構造体のファイル入出力の問題で、共用体の中の構造体を引数にしたいのですが、設定方法が分からずにずっと悩んでいます。
  • tbl.COMでやりとりすることは出来ないのでしょうか?他にもいろいろ試しましたが、全てコンパイルエラーになってしまいます。
  • アドレスが同じ場合は出来ないということでしょうか?それとも私の指定の仕方がおかしいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#30727
noname#30727
回答No.1

>共用体の中の構造体を引数にしたい 共用体には2つの構造体がありますが、どちらを引数にしたいのでしょうか? 例えばCOM_DATA であるならば、 int main() { union TBL tbl; FileWrite(&tbl.COM); } int FileWrite(struct COM_DATA *com) { fwrite(com, sizeof(struct COM_DATA), 1, fp); } 共用体そのものを引数とするのであれば、 int main() { union TBL tbl; FileWrite(&tbl); } int FileWrite(union TBL *tbl) { fwrite(tbl, sizeof(union TBL), 1, fp); }

kumagoryou
質問者

お礼

早速のご解答ありがとうございます! 指定する構造体は、COMの場合はcom.datへ、 INDIの場合はindi.datへと、両方使います。 引数としは、unionからではなくstructでアドレスを渡すんですね!早速試してみたいと思います! 本当にありがとうございます!