| 本帖最后由 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,请各位赐教,谢谢!
 |