【发布时间】:2014-03-27 23:30:40
【问题描述】:
我有一个测试文件,其中测试定义为
static int test1(){
/*some tests here*/
return 0;
}
static int test2(){
/*some tests here*/
return 0;
}
/*...etc*/`
我想知道是否有一种方法可以循环调用所有测试,而不是为每个测试编写调用。 (有一些函数我需要在每次测试之前和之后调用,并且有超过 20 次测试,这可能会变得非常烦人。我也一直对做这样的事情感到好奇。)
我在想类似的事情:
int main(){
int (*test)() = NULL;
for(i = 1; i <= numtests; i++){
/*stuff before test*/
(*test)();
/*stuff after test*/
}
return 0;
}
但我不确定如何继续使用“i”的值来设置测试指针。
【问题讨论】:
-
你在哪个平台上?从技术上讲,在 *NIX 平台上,你应该可以使用
dlsym和朋友来动态调用函数,虽然我并不推荐它。 -
我通过 ssh 连接到我学校的 linux 服务器。我不知道 dlsym 是做什么的,我现在不想让自己感到困惑,但我稍后会查一下。下面发布了一个工作(且看起来很有趣)的解决方案,但感谢您的回复:)
标签: c dynamic-function