自定义的Trace

#include <ostream>
#include <cstdarg>//用到va_start va_end


//#define NDEBUG   //关闭调试

//借助vprintf实现的Trace
inline void Trace(char* format, ...)
{    
#ifndef NDEBUG
    va_list ap;
    va_start(ap, format);
    vprintf(format, ap);
    va_end(ap);
#endif
}

//借助宏函数实现的Trace
#ifdef NDEBUG
#define TRACE(para)
#else
#define TRACE(para) para
#endif


// inline int Trace(char* format, ...)
// {
//
// #ifndef NDEBUG
//     va_list ap;
//     va_start(ap, format);
//     int n = vprintf(format, ap);
//     va_end(ap);
//     return n;
// #else
//     return 0;
// #endif
// }

int main()
{
    Trace("%s %d %u %c %f \n","blue ice", 1, -1, 'c', 1.2);
    TRACE(printf("%s %d %u %c %f \n","blue ice", 1, -1, 'c', 1.2));
    return 0;
}

你可能感兴趣的:(c,list,include)