gpt4 book ai didi

c - 仅当 _DEBUG 定义为 : c 时打印

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:03 24 4
gpt4 key购买 nike

我只想在定义了 _DEBUG 时打印信息

#define DEBUG(y) y == true ? #define _DEBUG true  : #define _DEBUG false

#ifdef _DEBUG
#define Print(s) printf(s);
#endif

获取错误:

error: '#' is not followed by a macro parameter

关于如何使用预处理器指令实现这一点有什么建议吗?

我打算从我的主要用途中使用它:

DEBUG(true);
Print("Inside main in debug mode");

最佳答案

cannotrun-time 重新定义宏.你也不能拥有 #define inside of another #define ,就像您在代码的第一行尝试一样。

你可以这样做:

#ifdef _DEBUG
#define Print(s) printf("%s", s)
#else
#define Print(s)
#endif

并从您的主程序中使用它:

#define _DEBUG
Print("Inside main in debug mode");
#undef _DEBUG
Print("Inside main debug mode off");

如果你真的需要在运行时打开和关闭调试,你可以这样做:

void PrintIf(BOOL dbg, char * msg)
{
if (dbg)
{
printf("%s", msg)
}
}

然后像这样使用它

y = TRUE;
PrintIf(y,"Inside main in debug mode");
y = FALSE;
PrintIf(y,"Inside main debug mode off");

关于c - 仅当 _DEBUG 定义为 : c 时打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616365/

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