打印
[MM32软件]

将函数装进数组的方法

[复制链接]
644|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最近想到一个事情,能否使用循环调用不同的函数呢,思考了一会儿,想到了一个方法,使用函数指针数组。
#include <stdio.h>

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


使用特权

评论回复
沙发
xinxianshi|  楼主 | 2025-7-24 17:41 | 只看该作者
经过测试,效果非常好

使用特权

评论回复
板凳
tpgf| | 2025-7-27 10:44 | 只看该作者
利用数组名即首元素地址的特性,通过指针访问和修改数组内容

使用特权

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

本版积分规则

102

主题

1016

帖子

1

粉丝