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`。
这就是结构体内函数指针的调用方法。


发布评论