c语言结构体中的函数应用详解
时间: 2023-12-18 14:28:50 浏览: 158
在C语言中,结构体中可以定义函数指针作为成员,这种方式可以实现面向对象编程中的多态性。具体来说,结构体中的函数指针可以指向不同的函数,从而实现对不同类型数据的处理。下面是一个例子:
```c
#include <stdio.h>
// 定义一个结构体
struct operation {
char operator;
int (*func)(int, int); // 函数指针作为成员
};
// 定义两个函数
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
int main() {
// 定义结构体数组
struct operation ops[2];
// 初始化结构体数组
ops[0].operator = '+';
ops[0].func = add;
ops[1].operator = '-';
ops[1].func = sub;
// 调用函数指针
int result1 = ops[0].func(1, 2); // result1 = 3
int result2 = ops[1].func(3, 2); // result2 = 1
printf("result1 = %d\n", result1);
printf("result2 = %d\n", result2);
return 0;
}
```
上述代码定义了一个结构体`operation`,其中包含一个字符类型的运算符和一个函数指针`func`。然后定义了两个函数`add`和`sub`,分别实现加法和减法。接着定义了一个结构体数组`ops`,并初始化了其中的两个元素,分别对应加法和减法。最后通过调用函数指针,实现了对不同类型数据的处理。
阅读全文