これは、教授がプロジェクト用に提供した.hファイルの1つで見ましたが、これが何を意味するのかよくわかりません。
int (*get_console_dev)(void);
と同じですか
(int*) get_console_dev(void);
(get_console_devという名前の関数で、int
?へのポインターを返します)
ありがとう
int
これは、0個のパラメーターを返したり受け取ったりする関数を指すことができる関数ポインターです。投稿した2行目と同じではありません。
int (*get_console_dev)(void)
関数ポインタ宣言です。get_console_dev
特定のシグニチャに一致する関数への参照を保持できる変数です。
int consoleFunction(void);
// ...
int (*get_console_dev)(void);
get_console_dev = consoleFunction;
この宣言は、次のものと同じではありません(int*) get_console_dev(void);
。
これをcdeclで確認してください。
int(* get_console_dev)(void);
これは、パラメーターがなく、整数としてタイプを返すポインターポインター関数です。
(int *)get_console_dev(void);
これはパラメータのない関数であり、整数型のポインタとして型を返します。
どちらも完全に異なります。
関数ポインタを読んでください。これは、void(引数として)を取り、整数を返す関数へのポインターです。