我在我的教授为一个项目提供的一个 .h 文件中看到了这个文件,但我不太确定这意味着什么。
int (*get_console_dev)(void);
是不是一样
(int*) get_console_dev(void);
(一个名为 get_console_dev 的函数,它返回一个指向int
? 的指针)
谢谢
它是一个函数指针,可以指向一个返回int
和取0参数的函数;它不等于您发布的第二行。
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(作为参数)并返回整数