C99编译器支持这样的格式:#define   debug(…)   printf(__VA_ARGS__),但是vc环境下编译出错,有什么办法可以在vc下使用可变参数宏?

解决方案 »

  1.   

    #define debug(p) printf(p)debug( ("%d", i) );
      

  2.   

    不好意思,是我没有把问题说清楚,我想实现的是可以根据条件输出格式如:"Debug function_name line ……"的语句,所以直接#define   debug   printf不合适;#define   debug(p)   printf(p)
    debug(   ("%d",   i)   );
    我试了,如果打印语句是这样:debug(("%d %d %s \n",   2, 7, "hello"));  则输出结果:hello
      

  3.   

    我又试了一下,定义:
    #define   debug(p)   printf##p,输出结果2 7 hello。
      

  4.   

    还有一种办法:
        #define DEBUG(args) (printf("DEBUG: "), printf(args))
        #define _ ,    DEBUG("i = %d" _ i);