最近想到一个事情,能否使用循环调用不同的函数呢,思考了一会儿,想到了一个方法,使用函数指针数组。
#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;
}
|