C语言中的函数指针
如何在C中创建“函数指针”(以及(例如)函数具有参数)?C语言中的函数指针,c,pointers,function-pointers,C,Pointers,Function Pointers,如何在C中创建“函数指针”(以及(例如)函数具有参数)? 当我第一次深入研究函数指针时,我发现这个网站很有用 首先声明函数指针: typedef int (*Pfunct)(int x, int y); 几乎与功能原型相同。 但是现在您所创建的只是一种函数指针(带有typedef)。 现在您可以创建该类型的函数指针: Pfunct myFunction; Pfunct myFunction2; 现在将函数地址分配给这些地址,您可以像使用函数一样使用它们: int add(int a, int
当我第一次深入研究函数指针时,我发现这个网站很有用
首先声明函数指针:
typedef int (*Pfunct)(int x, int y);
几乎与功能原型相同。但是现在您所创建的只是一种函数指针(带有
typedef
)。现在您可以创建该类型的函数指针:
Pfunct myFunction;
Pfunct myFunction2;
现在将函数地址分配给这些地址,您可以像使用函数一样使用它们:
int add(int a, int b){
return a + b;
}
int subtract(int a, int b){
return a - b;
}
. . .
myFunction = add;
myFunction2 = subtract;
. . .
int a = 4;
int b = 6;
printf("%d\n", myFunction(a, myFunction2(b, a)));
int (*f(int x))(double y);
函数指针非常有趣。您还可以定义返回函数指针的函数:
int add(int a, int b){
return a + b;
}
int subtract(int a, int b){
return a - b;
}
. . .
myFunction = add;
myFunction2 = subtract;
. . .
int a = 4;
int b = 6;
printf("%d\n", myFunction(a, myFunction2(b, a)));
int (*f(int x))(double y);
f是一个函数,它接受一个int参数并返回指向一个接受一个双参数并返回int的函数的指针。有趣的示例-添加一个浮点和两个字符?当然,您不是一直想将3.145添加到“z”并将结果作为整数返回吗!?我将把这个例子改成更理智一点的例子