我为 DbgPrint 定义了一个宏,以便在定义 _DEBUG 时打印消息
#define MYDBGPRINT(X) #ifdef _DEBUG \
DbgPrint(X) \
#endif
但是输出与例如 DbgPrint 不同
ULONG id=0;
MYDBGPRINT("the value of the id : %u ",id) //outputs garbage
DbgPrint("the value of the id : %u ",id) //outputs the correct value of id
最佳答案
您正在尝试使用预处理器来创建预处理器定义。我自己从未尝试过,但这似乎是一个坏主意,可能行不通。相反,尝试类似的方法:
#ifdef _DEBUG
#define MYDBGPRINT(X) DbgPrint(X)
#else
#define MYDBGPRINT(X)
#endif
或者在宏的参数数量可变的情况下:
#ifdef DEBUG
#define MYDBGPRINT(...) DbgPrint(__VA_ARGS__)
#else
#define MYDBGPRINT(...)
#endif
关于c - DbgPrint 输出与宏到 DbgPrint 的输出不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21656573/