我正在尝试创建一些可用于创建自己的单元测试库的宏。我的头文件如下所示:
#ifndef _TEST_H_
#define _TEST_H_
#include <stdio.h>
#include "hehe_stack.h"
static hehe_stack* tests;
typedef int (*testfunc)();
#define test_init() tests = hehe_stack_init();
#define test_register(test) hehe_stack_push(tests, test);
#define test_info() fprintf(stdout, "running %s :: %s \n", __FILE__, __func__);
#define test_run() testfunc = (int (*)()) hehe_stack_pop(tests); testfunc(); return 0;
#endif
在每个测试 .c 文件中,我想将一些函数指针推入测试堆栈,然后将每个函数指针从堆栈中弹出并调用它。我的堆栈弹出方法返回一个 void 指针,而我推入它的函数指针返回一个 int 并且不带任何参数。我的语法不正确吗?我觉得我应该能够做到这一点。