打印
[PIC®/AVR®/dsPIC®产品]

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

[复制链接]
897|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1728

帖子

3

粉丝