结构体里可以包含函数指针。这种情况通常用于实现类似于面向对象编程语言中的方法(method)或者回调函数(callback)的功能。通过将函数指针作为结构体的成员,可以在结构体中存储函数的地址,从而实现对函数的引用。
#include <stdio.h>
// 定义一个结构体
struct Calculator {
// 函数指针成员
int (*add)(int, int);
int (*subtract)(int, int);
};
// 加法函数
int add(int a, int b) {
return a + b;
}
// 减法函数
int subtract(int a, int b) {
return a - b;
}
int main() {
// 创建一个 Calculator 结构体实例
struct Calculator calc;
// 将函数指针指向相应的函数
calc.add = add;
calc.subtract = subtract;
// 使用结构体中的函数指针调用函数
int result_add = calc.add(10, 5);
int result_subtract = calc.subtract(10, 5);
printf("Addition result: %d\n", result_add); // 输出:Addition result: 15
printf("Subtraction result: %d\n", result_subtract);// 输出:Subtraction result: 5
return 0;
}
|