[PIC®/AVR®/dsPIC®产品] 结构体里可以放函数指针吗?

[复制链接]
1205|3
 楼主| wanduzi 发表于 2024-3-28 15:21 | 显示全部楼层 |阅读模式
就是可以将函数以函数指针的方式放到结构体里吗?
谁试过,举个例子学一下。
mintspring 发表于 2024-3-28 15:25 | 显示全部楼层
可以啊,函数指针就是个指针变量当然可以。
mintspring 发表于 2024-3-28 15:25 | 显示全部楼层
  1. #include <stdio.h>

  2. // 定义一个结构体
  3. struct Calculator {
  4.     // 函数指针成员
  5.     int (*add)(int, int);
  6.     int (*subtract)(int, int);
  7. };

  8. // 加法函数
  9. int add(int a, int b) {
  10.     return a + b;
  11. }

  12. // 减法函数
  13. int subtract(int a, int b) {
  14.     return a - b;
  15. }

  16. int main() {
  17.     // 创建一个 Calculator 结构体实例
  18.     struct Calculator calc;

  19.     // 将函数指针指向相应的函数
  20.     calc.add = add;
  21.     calc.subtract = subtract;

  22.     // 使用结构体中的函数指针调用函数
  23.     int result_add = calc.add(10, 5);
  24.     int result_subtract = calc.subtract(10, 5);

  25.     printf("Addition result: %d\n", result_add);        // 输出:Addition result: 15
  26.     printf("Subtraction result: %d\n", result_subtract);// 输出:Subtraction result: 5

  27.     return 0;
  28. }
mintspring 发表于 2024-3-28 15:26 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1882

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部