【发布时间】:2014-01-28 09:24:17
【问题描述】:
void printFunc( void(*)(int&,int&), int& );
我不知道这段代码是做什么的。我知道它是一个有两个参数的函数原型,但是我不知道第一个参数是什么意思。
【问题讨论】:
标签: c++ parameters reference void-pointers function-prototypes
void printFunc( void(*)(int&,int&), int& );
我不知道这段代码是做什么的。我知道它是一个有两个参数的函数原型,但是我不知道第一个参数是什么意思。
【问题讨论】:
标签: c++ parameters reference void-pointers function-prototypes
第一个参数类型是一个指向函数的指针,该函数接受两个参数,均为int&s,并返回void。
void foo(int&, int&);
如果你有这个函数声明,你可以将foo 作为参数传递给printFunc。
【讨论】:
它是一个指向函数的指针,它接受两个int& 参数并返回void。
如果它有一个标识符(比如说p),它的拼写应该是这样的:
void (*p)(int&, int&)
然后,我们可以应用“如果我们将声明键入为表达式,我们将获得它的类型”这一原则。所以:
(*p) 表示p 是一个指针
(*p)(int&, int&) 表示(*p) 是一个带有两个int& 参数的函数
void (*p)(int&, int&) 表示返回void。
【讨论】: