c - 如何仅为特定文件启用自定义 TRACE 宏?

标签 c embedded

我在名为“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/

相关文章:

c - 如何将对话框置于主程序窗口位置的中心?

GPS 和嵌入式开发 - 在哪里可以找到资源?

c - 读取 MSP430 IO 寄存器太快?

c - 以 float 形式打印数组,其中大小取决于用户输入

c - 在函数调用中使用它时,将值添加到结构中的指针

将 off_t 和 ssize_t 与其他类型进行比较

c++ - 从文件opencv中读取视频

scripting - Lua 作为嵌入式语言的替代品?

networking - 嵌入式 IP 堆栈 : is it okay/accepted to have asynchronous sending?

我可以从 GPIO 的输出引脚读取有效信号吗?