这条语句定义了一个函数指针类型 func
,该函数指针指向一个无返回值、无参数的函数。
具体来说,typedef
是一个关键字,它用于定义一种新的类型名。void (*func)(void)
是一个函数指针类型的声明,其中 void
表示函数没有返回值,(void)
表示函数没有参数,*func
表示这是一个指向函数的指针类型。
typedef void (*func)(void);
将这个函数指针类型定义为 func
,使得以后可以用 func
来代替 void (*)(void)
这个函数指针类型。这样,我们可以用 func
来定义一个指向无返回值、无参数的函数的指针,而不必再写一长串的函数指针类型了。
示例如下。
#include <iostream>
using namespace std;
typedef void (*func)(void); // 定义函数指针类型 func
void foo() {
cout << "Hello, world!" << endl;
}
int main() {
func ptr = &foo; // 定义函数指针 ptr,使其指向函数 foo
ptr(); // 通过函数指针 ptr 调用函数 foo
return 0;
}
//输出如下
Hello, world!