[MM32软件] 将函数装进数组的方法

[复制链接]
 楼主| xinxianshi 发表于 2025-7-24 17:40 | 显示全部楼层 |阅读模式
最近想到一个事情,能否使用循环调用不同的函数呢,思考了一会儿,想到了一个方法,使用函数指针数组。
  1. #include <stdio.h>

  2. // 声明三个相同签名的函数
  3. int add(int a, int b) { return a + b; }
  4. int sub(int a, int b) { return a - b; }
  5. int mul(int a, int b) { return a * b; }
  6. char aa[3][7] = {"加法", "减法", "乘法"}; // 每行分配7字节
  7. int main() {
  8.     // 定义函数指针数组:包含3个指向 int(int, int) 函数的指针
  9.     int (*funcs[3])(int, int) = {add, sub, mul};
  10.    
  11.     // 调用数组中的函数
  12.     int a = 10, b = 5;
  13.     printf("加法: %d\n", funcs[0](a, b)); // add(10, 5)
  14.     printf("减法: %d\n", funcs[1](a, b)); // sub(10, 5)
  15.     printf("乘法: %d\n", funcs[2](a, b)); // mul(10, 5)
  16.         printf("------------------------\n"); //华丽的分割线
  17.         for(int i=0;i<3;i++)
  18.         {
  19.                 printf("%s: %d\n", aa[i],funcs[i](a, b));
  20.         }
  21.    
  22.     return 0;
  23. }


 楼主| xinxianshi 发表于 2025-7-24 17:41 | 显示全部楼层
经过测试,效果非常好
138996881ffb5e8cf1.png
tpgf 发表于 2025-7-27 10:44 | 显示全部楼层
利用数组名即首元素地址的特性,通过指针访问和修改数组内容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

1019

帖子

1

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

102

主题

1019

帖子

1

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