带有参数的函数,如果通过函数指针调用。

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:45:03
在一个例子里看到,通过给结构体中的指针赋值为一个函数的指针,可是参数是如何传递的呢?

函数指针的声明方法为:

返回值类型 ( * 指针变量名) ([形参列表]);

注1:“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。

例子:

#include<stdio.h>
int max(int x,int y){return (x>y? x:y);}
int main()
{
    int (*ptr)(int, int);
    int a, b, c;
    ptr = max;
    scanf("%d%d", &a, &b);
    c = (*ptr)(a,b);
    printf("a=%d, b=%d, max=%d", a, b, c);
    return 0;
}

既然能够给结构体中的指针赋以函数指针,显然这个指针也是一个函数指针,则在调用这个指针时直接传给参数就可以了。


typedef void (*Pfun)(double);
struct One
{
Pfun fun;
};

void show(double a)
{