1

我在我的教授为一个项目提供的一个 .h 文件中看到了这个文件,但我不太确定这意味着什么。

int (*get_console_dev)(void);

是不是一样

(int*) get_console_dev(void);

(一个名为 get_console_dev 的函数,它返回一个指向int? 的指针)

谢谢

4

4 回答 4

7

它是一个函数指针,可以指向一个返回int和取0参数的函数;它不等于您发布的第二行。

于 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 回答