gpt4 book ai didi

c - 使用循环在C中调用 'sequentially'命名函数

转载 作者:行者123 更新时间:2023-12-02 05:56:36 25 4
gpt4 key购买 nike

说我有函数foo_1(),foo_2(),... foo_n()

如何使用循环调用它们,即如何将字符串“转换”为函数调用:

for (i = 0; i < n; i++)
switch (fork()) {
case 0: //child process
*COMVAR+=m;
//call foo_i()
exit(4);
case -1:
exit(5);
}

最佳答案

不。

您能做的最好的事情就是函数指针数组

#include <stdio.h>

typedef int (*fx)(void); // fx is pointer to function taking no parameters and returning int

int foo_1(void) { printf("%s\n", __func__); return 1; }
int foo_2(void) { printf("%s\n", __func__); return 2; }
int foo_three(void) { printf("%s\n", __func__); return 3; }

int main(void) {
fx foo[3] = { foo_1, foo_2, foo_three };
for (int k = 0; k < 3; k++) {
printf("foo[%d]() returns %d\n", k, foo[k]());
}
}

see code running on ideone

关于c - 使用循环在C中调用 'sequentially'命名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52985266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com