本帖最后由 ccy668 于 2011-12-26 16:16 编辑
各位大侠,最近想自己实现一个可以控制打印等级的调试程序,其实在很多程序中已经实现了,但看了几个例子都觉得不够灵活,它们实现了打印等级的控制,但打印的参数个数都是固定的,现在想自己改良一下,思路如下:
函数定义:
void debug(int level, const char * __format, ...);
//函数原形和printf类似,只是第一个参数level为打印等级,分为5级,用宏定义将1~5分别对应:error,warning,info,debug,log
函数实现部分:
void debug (int level, const char * __format, ...)
{
int debug_level; //这个变量控制打印输出等级,变量值从系统环境变量或应用程序的运行参数得到。
debug_level = get_debug_level(); //从环境变量或运行参数等地方获取debug_level的值
if (level <= debug_level) //如果设置的调试等级大于程序打印等级,则打印
{
printf (const char * __format, ...); //将debug函数的实参传递到这里,再调用printf打印,问题点也就是在这里
}
}
问题的关键就在于如何将debug函数的实参传递到printf,请各位赐教,谢谢! |