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