1

これは、教授がプロジェクト用に提供した.hファイルの1つで見ましたが、これが何を意味するのかよくわかりません。

int (*get_console_dev)(void);

と同じですか

(int*) get_console_dev(void);

(get_console_devという名前の関数で、int?へのポインターを返します)

ありがとう

4

4 に答える 4

7

intこれは、0個のパラメーターを返したり受け取ったりする関数を指すことができる関数ポインターです。投稿した2行目と同じではありません。

于 2012-09-16T17:38:55.000 に答える
3

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で確認してください。

于 2012-09-16T17:39:43.770 に答える
0

int(* get_console_dev)(void);

これは、パラメーターがなく、整数としてタイプを返すポインターポインター関数です。

(int *)get_console_dev(void);

これはパラメータのない関数であり、整数型のポインタとして型を返します。

どちらも完全に異なります。

于 2012-09-16T17:44:56.697 に答える
0

関数ポインタを読んでください。これは、void(引数として)を取り、整数を返す関数へのポインターです。

于 2012-09-16T17:49:20.810 に答える