社区讨论

关于调试,玄关

学术版参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mihaoiyv
此快照首次捕获于
2025/11/27 18:32
3 个月前
此快照最后确认于
2025/11/28 20:35
3 个月前
查看原帖
我的缺省源里有:
CPP
#ifdef LOCAL
	#define debug(...) fprintf(stderr, __VA_ARGS__)
	#define printf(...) fprintf(stderr, __VA_ARGS__)
#else
	#define debug(...) 
	#define printf(...) 
#endif
这样相当于本地调试时会在 stderr 输出。
我想要让在没有 define LOCAL 的情况下忽略 debug 的所有语句,按照上面的写法可能会 CE(如 a+=b, debug("b:%d\n", b);),如果 define debug(...) 1 又会一堆 warning,有没有好的解决办法。
P.S. 最好能够让编译器自动忽略调试语句(即比如我写了个 for 用于输出,会直接忽略掉这个 for)

回复

1 条回复,欢迎继续交流。

正在加载回复...