我在名为“debug.h”的文件中编写了以下跟踪宏。
#define TRACE(x) \
printf( \
"%s(%d): ", \
__FILE__, \
__LINE__ \
); \
\
printf(x);
在调试中,我只想为某些文件启用宏,因为我正在使用的平台上的资源有限。我不想从文件中完全删除 TRACE 调用。只需禁用它们即可。
有没有一种干净的方法可以使用预处理器在 C 中执行此操作?
最佳答案
在debug.h
中:
#if TRACE_ENABLE
#define TRACE(x) \
printf( \
"%s(%d): ", \
__FILE__, \
__LINE__ \
); \
\
printf(x);
#else
#define TRACE(x)
#endif
然后,在您不需要跟踪的源文件中:
#define TRACE_ENABLE 0
#include "debug.h"
或者只是:
#include "debug.h"
在源文件中启用跟踪:
#define TRACE_ENABLE 1
#include "debug.h"
关于c - 如何仅为特定文件启用自定义 TRACE 宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464883/