gpt4 book ai didi

C 是否有允许动态函数调用的解决方法?

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:02 25 4
gpt4 key购买 nike

我有read C 不支持动态函数调用。我的程序有越来越多的测试用例作为单独的函数实现,比如 -

int testcase1(void);
int testcase2(void);
int testcase3(void);

每次我添加一个新的测试用例时,我还必须添加对我的主函数的调用,例如 -

int main(int argc, char **argv){
assert(!testcase1());
assert(!testcase2());
assert(!testcase3());
}

我更愿意调用类似 assert(!testcase*()) 的方法,其中 * 匹配在我的程序中解析为有效函数名称的任何字符串。

你能想到一个更方便的解决方案吗?

最佳答案

如果您所有的测试用例都具有相同的签名,那么您可以使用函数指针数组:

void (*func[])() = { testcase1, testcase2 };

for (size_t i = 0; i < sizeof(func)/sizeof(func[0]); i++) {
assert(!func[i]());
}

关于C 是否有允许动态函数调用的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40337946/

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