質問: (gp_u1_def_action[u1_event][st_g.u1_mode_system])(g_u1_def_state[u1_event][st_g.u1_mode_system], u1_id); ``` ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: こんにちは。 > > st_g.u1_mode_system = (gp_u1_def_action[u1_event][st_g.u1_mode_system])(g_u1_def_state[u1_event][st_g.u1_mode_system], u1_id); > > には、unsigned char の8ビットの値が入るのでしょうか? > > > st_g.u1_mode_systemはunsigned char型なので、ほとんどの処理系では8ビットの値が入ると思います。 (C言語ではchar型は8ビット以上であることが規定されてます。9ビットあるようなコンピュータも世の中には存在しているようです。) > > 又、関数のアドレスの2次元配列とはどういう使い方になるのでしょうか? そもそも、2次元配列を使って何がしたいのか良く分かりません。 > > > 状態遷移表と思います。 3つの状態に対して4種類のイベントが定義してあり、各状態の時に発生したイベント毎に呼び出す関数を切り替えています。