这个宣言的含义是什么?

时间:2012-09-16 17:37:51

标签: c function pointers

我在一位项目的教授提供的.h文件中看到了这个。但是我不太清楚这意味着什么。

int (*get_console_dev)(void);

相同
(int*) get_console_dev(void);

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

由于

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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进行检查。

答案 2 :(得分:0)

int(* get_console_dev)(void);

这是指针指针函数,没有参数,返回类型为整数。

(int *)get_console_dev(void);

这是没有参数的函数,返回类型是整数类型的指针。

两者完全不同。

答案 3 :(得分:0)

请阅读功能指针。它是一个指向函数的指针,它接受void(作为参数)并返回整数