我偶然发现了这种声明。
typedef int (*func) (int,int,int);
这是什么意思和用途?
答案 0 :(得分:1)
它将func
定义为函数的类型,它接受3个整数并返回整数。
当您将函数作为回调传递或将函数地址放入数组或类似的东西时,这很有用。
答案 1 :(得分:0)
它定义了一个类型func
,它是一个返回int
并获取3 int
个参数的函数的指针。
使用它的一个例子是:
typedef int (*func) (int, int, int);
int foo(int a, int b, int c) {
return a + b * c;
}
...
// Declare a variable of type func and make it point to foo.
// Note that the "address of" operator (&) can be omitted when taking the
// address of a function.
func f = foo;
// This will call foo with the arguments 2, 3, 4
f(2, 3, 4);
更现实的情况可能是拥有一堆具有相同返回类型并使用相同类型/数量的参数的函数,并且您希望根据某个变量的值调用不同的函数。您可以将函数指针放在数组中并使用索引来调用相应的函数,而不是使用一堆if
- 语句或大switch/case
。
答案 2 :(得分:0)
这是typedef的名字。它读作:func is a pointer to a function that takes three ints and returns an int.
您可以在此link
上查看更多内容