C 什么';这项声明的意义是什么?

C 什么';这项声明的意义是什么?,c,function,pointers,C,Function,Pointers,我在教授为一个项目提供的一个.h文件中看到了这个,但我不太确定这是什么意思 int (*get_console_dev)(void); 和你的一样吗 (int*) get_console_dev(void); (一个名为get_console_dev的函数,返回指向int?)的指针) 感谢这是一个函数指针,可以指向返回int并接受0个参数的函数;它不等同于您发布的第二行。它是一个函数指针,可以指向返回int并接受0个参数的函数;它并不等同于您发布的第二行。int(*get\u console

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

int (*get_console_dev)(void);
和你的一样吗

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


感谢

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

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

int(*get\u console\u dev)(void)
是一个函数指针声明
get\u console\u dev
是一个变量,可以保存对与特定签名匹配的函数的引用

int consoleFunction(void);

// ...

int (*get_console_dev)(void);

get_console_dev = consoleFunction;
此声明与以下声明不同:
(int*)get\u console\u dev(void)

请与我们联系

int(*get\u console\u dev)(void)
是一个函数指针声明
get\u console\u dev
是一个变量,可以保存对与特定签名匹配的函数的引用

int consoleFunction(void);

// ...

int (*get_console_dev)(void);

get_console_dev = consoleFunction;
此声明与以下声明不同:
(int*)get\u console\u dev(void)

请与我们联系

int(*get_console_dev)(无效)

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

(int*)获取控制台开发(void)

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

两者完全不同。

int(*get\u console\u dev)(无效)

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

(int*)获取控制台开发(void)

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


两者完全不同。

请阅读函数指针。它是指向以void(作为参数)为参数并返回整数的函数的指针。请读取函数指针。它是一个指向函数的指针,该函数取void(作为参数)并返回整数

,并且应该对您遇到的任何其他未知声明进行短时间处理。如果它在头中,它不应该声明为
extern
static
?@sepp2k否,为什么它需要声明为
extern
?如果它是静态的,为什么要把它放在.h文件中?(从技术上讲,任何
static
都不能在file@user1508893它必须是
extern
static
,因为否则,如果多个C文件包含头文件,则会有多个
get\u console\u dev
的定义,如果变量不是
static
,则不允许使用该定义如果它在一个头文件中,那么它不应该被声明为
extern
或者
static
?@sepp2k不,为什么它需要是
extern
?如果它是'
static
,为什么要把它放在一个.h文件中?(从技术上讲,任何
static
都不能在file@user1508893它必须是
extern
static
,因为否则,如果多个C文件包含头文件,则会有多个
get\u console\u dev
的定义,如果变量不是
static
,则不允许这样做。问题是什么声明函数指针的目的/优点?只是为了有人可以将其设置为您不关心的某个值,因为您所需要的只是一个返回整数的函数>仅一个示例:您希望设置一个,例如处理GUI事件。函数指针允许您引用处理函数,将其传递给另一个函数。anotherr:允许您在数据结构中传递函数,即具有对数据进行操作的函数的
struct
。我明白了。感谢您的解释!声明函数指针的目的/优点是什么?只是为了让某人可以将其设置为您不关心的值,因为您只需要一个返回n integer>仅举一个例子:您想设置一个,例如处理GUI事件。函数指针允许您引用处理函数,将其传递给另一个函数。另一个:允许您传递数据结构中的函数,即具有对数据进行操作的函数的
结构。我明白了。感谢您的解释!