wanduzi 发表于 2024-3-28 15:21

结构体里可以放函数指针吗?

就是可以将函数以函数指针的方式放到结构体里吗?
谁试过,举个例子学一下。

mintspring 发表于 2024-3-28 15:25

可以啊,函数指针就是个指针变量当然可以。

mintspring 发表于 2024-3-28 15:25

#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;
}

mintspring 发表于 2024-3-28 15:26

页: [1]
查看完整版本: 结构体里可以放函数指针吗?