void(* var_name)(data_type) - 此声明如何工作?

时间:2016-12-11 03:35:39

标签: c++ c pointers

上面的函数指针声明如何在C / C ++中工作。我首先在c编程中使用signal.h文件时遇到了这个声明。

2 个答案:

答案 0 :(得分:2)

这是一个函数指针decalaration

void (*var_name)(int)

在此示例中,var_name是一个指向函数的指针,该函数采用一个参数整数,并返回 void 。这就好像你要声明一个名为“* var_name”的函数,它接受一个int并返回void;现在,如果* var_name是一个函数,那么var_name必须是一个指向函数的指针

答案 1 :(得分:0)

http://cyan-lang.org/jose/courses/06-2/lc/Ponteiros-para-Funcoes.htm

用葡萄牙语,例如:

在C中,我们可以使用语法

声明一个指向函数的指针
void (* f) ();

在这种情况下,f是指向没有参数且返回void的函数的指针。 F可以指向兼容的功能:

F = maximum;

最大值是声明为

的函数
void max () {
    Puts ("Hi, I'm the max");
}

可以使用以下任何语法从f调用最大值。

(* F) (); / * Maximum call * /
F (); / * Maximum call * /