在 C 语言中,定义类似 printf 的宏的正确方法是什么,它只在定义 DEBUG 符号时打印?
#ifdef DEBUG
#define DEBUG_PRINT(???) ???
#else
#define DEBUG_PRINT(???) ???
#endif
在哪里???就是不知道该填什么的地方
最佳答案
这个成语我见过很多:
#ifdef DEBUG
# define DEBUG_PRINT(x) printf x
#else
# define DEBUG_PRINT(x) do {} while (0)
#endif
像这样使用它:
DEBUG_PRINT(("var1: %d; var2: %d; str: %s\n", var1, var2, str));
额外的括号是必需的,因为一些较旧的 C 编译器不支持宏中的可变参数。
关于c - 在 C 中调试打印宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941307/