- 论坛徽章:
- 0
|
下面是一个TRACE头文件trace.h,请各位高手给想个办法设置一个开关,开启时打印Trace信息,关闭则不打印.
这个头文件同时支持C, C++编译器
#ifndef TRACE_H
#define TRACE_H
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
#if defined(__STDC__)
#if defined(TRACE)
#define Trace(...) do {
fprintf(stderr, "<%s%d>:" , __FILE__, __LINE__);\
fprintf(stderr, "<%s%d>:" ,__VA_ARGS_);
}while(0);
#else /*TRACE*/
#define Trace(...)
#endif /*TRACE*/
#else /*__STDC__*/
#define TRACE _trace
#include <stdarg.h>
#include <stdlib.h>
static inline int _trace(const char *format, ...)
{
int done = 0;
#ifdef TRACE
va_list arg;
va_start (arg, format);
done = vfprintf(stderr, format, arg);
fflush(stderr);
#endif /*TRACE*/
return done;
}
#endif /*__STDC__*/
#ifdef __cplusplus
}
#endif /*__cplusplus*/
#endif /*TRACE_H*/ |
|