以下のコードの意味がよく分からない。
typedef enum CmdRetValue_tag (*cmd_func)(void);はenum CmdRetValue_tagを
(*cmd_func)(void)にtypedefするということですか。そのしたは
定義された関数cmd_funcを使っているとおもうんですが、cmd_funcはenum の型で、
CMD_FUNC[CMD_NUM]はenumを表していると思うんですが、正確な表現で説明していただけませんか。
もう一つ(*cmd_func)(void)の説明もおねがいします。
(*cmd_func)(void)は前に出てきているんですが、呼び方と使い方が自信ありません。
CMD_NUMは別に定義されている定数です。
コード コマンド実行関数 typedef enum CmdRetValue_tag (*cmd_func)(void); static const cmd_func CMD_FUNC[CMD_NUM] = { cmd_add, cmd_count, cmd_delete, cmd_search, cmd_clear, cmd_print, cmd_exit };
関数ポインタでググれば色々情報があると思います。Cの解説ですが、http://www.c-lang.org/pointer_function.htmlなど...
ありがとうございます。今同じURLを見ていました。enum CmdRetValue_tag が返却値の型で、cmd_funcが関数ですね。これでいいでしょうか。
static const cmd_func とCMD_FUNC[CMD_NUM]の関係はどう読んで、cmd_funcは関数の型で、CMD_FUNC[CMD_NUM]は実際のenum を表しているとおもうのですが、これでいいですか。読み方というか、呼び方がわかりません。
CMD_FUNCが関数ポインタの配列で、CMD_NUMは配列の添え字でcmd_funcは型でtypedefで定義したものとなりますね
回答3件
あなたの回答
tips
プレビュー