gpt4 book ai didi

c - 使用 C 宏启用/禁用日志级别

转载 作者:太空狗 更新时间:2023-10-29 15:11:30 25 4
gpt4 key购买 nike

#include <stdio.h>

#define LOG_D(x) { printf("D:"); printf(x);}
#define LOG_E(x) { printf("E:"); printf(x);}

void test(void)
{

LOG_D("ALL is well " );
}

我有一个非常庞大的代码,它有不同级别的日志,就像上面的代码一样。在最终测试的库中,我只需要一个错误日志以减少代码大小。

所以我想要这样的东西

#define ENABLE_DEBUG_LOG 0
#define ENABLE_ERROR_LOG 1

#define LOG_D(x) {#if(ENABLE_DEBUG_LOG==1) printf("D:"); printf(x); #endif}
#define LOG_E(x) {#if(ENABLE_ERROR_LOG==1) printf("E:"); printf(x);#endif}

我添加这个 #if(ENABLE_DEBUG_LOG==1) 只是为了解释,我需要一些可以编译的解决方案。

最佳答案

另一种选择 - 您可以只注释/取消注释 ENABLE_DEBUG_LOGENABLE_ERROR_LOG 以禁用/启用相应的日志级别。

// #define ENABLE_DEBUG_LOG    // disable DEBUG_LOG
#define ENABLE_ERROR_LOG // enable ERROR_LOG

#ifdef ENABLE_DEBUG_LOG
#define LOG_D(x) { printf("D:"); printf(x);}
#else
#define LOG_D(x) // nothing
#endif

#ifdef ENABLE_ERROR_LOG
#define LOG_E(x) { printf("E:"); printf(x);}
#else
#define LOG_E(x) // nothing
#endif

关于c - 使用 C 宏启用/禁用日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com