c语言结构体定义函数指针
时间: 2023-11-22 11:46:05 浏览: 133
详解C语言结构体中的函数指针
在C语言中,我们可以在结构体中定义函数指针。定义函数指针的方式与定义一般的指针变量类似,只是需要在指针变量名前加上函数类型的声明。例如,我们可以在结构体中定义一个指向函数的指针变量,如下所示:
```
struct example {
int (*func_ptr)(int, int);
};
```
这里,我们定义了一个名为example的结构体,其中包含一个名为func_ptr的函数指针变量。这个函数指针变量指向一个返回类型为int,参数列表为两个int类型的函数。
我们可以通过以下方式来使用这个函数指针变量:
```
int add(int a, int b) {
return a + b;
}
int main() {
struct example ex;
ex.func_ptr = add;
int result = ex.func_ptr(1, 2);
printf("%d\n", result); // 输出3
return 0;
}
```
在这个例子中,我们定义了一个名为add的函数,它接受两个int类型的参数并返回它们的和。然后,我们在main函数中创建了一个example类型的结构体变量ex,并将它的func_ptr成员变量设置为add函数的地址。最后,我们通过调用ex.func_ptr(1, 2)来调用add函数,并将结果存储在result变量中。
阅读全文