2024年5月30日发(作者:)

结构体内函数指针调用

结构体内的函数指针可以通过结构体变量来进行调用。首先,

需要定义一个结构体,结构体中包含一个函数指针成员,如下

所示:

```

typedef struct {

void (*func)(int);

} MyStruct;

```

其中,`void (*func)(int)`表示函数指针成员`func`,该函数指针

接受一个`int`类型的参数,并返回`void`类型。

接下来,可以定义一个函数,该函数通过结构体变量来调用函

数指针,如下所示:

```

void callFunc(MyStruct myStruct, int num) {

(num);

}

```

在该函数中,首先通过结构体变量`myStruct`来访问函数指针

成员`func`,并传递参数`num`给这个函数指针。

然后,可以定义一个函数来作为函数指针的具体实现,如下所

示:

```

void myFunction(int num) {

printf("The number is: %dn", num);

}

```

在这个函数中,我们打印传递给它的参数`num`。

最后,可以进行调用,如下所示:

```

int main() {

MyStruct myStruct;

= myFunction;

callFunc(myStruct, 10);

return 0;

}

```

在`main`函数中,首先创建一个结构体变量`myStruct`,然后将

函数指针成员`func`设置为`myFunction`。

然后,通过调用`callFunc`函数,传递结构体变量`myStruct`和

参数`10`,从而调用函数指针`func`指向的具体实现函数

`myFunction`。

此时,运行程序,将会输出`The number is: 10`。

这就是结构体内函数指针的调用方法。