尝试创建一个宏,可以在定义DEBUG时用于打印调试消息,如下面的伪代码:
#define DEBUG 1
#define debug_print(args ...) if (DEBUG) fprintf(stderr, args)
Run Code Online (Sandbox Code Playgroud)
如何用宏实现这一目标?
应该使用哪个预处理器定义来指定代码的调试部分?
使用#ifdef _DEBUG或者#ifndef NDEBUG是否有更好的方法来做到这一点,例如#define MY_DEBUG?
我认为_DEBUG是Visual Studio特有的,是NDEBUG标准吗?
我们的构建系统已经以某种方式发生了变化,使得优化的构建不再将-DNDEBUG添加到编译行.我搜索了我们的makefile,却找不到这个.
所以问题是,-DNDEBUG在哪里发源于大多数人以及这可能会如何改变?在我们确实有-DNDEBUG之前,我不认为这是从我们的任何makefile中删除的.
谢谢.
-威廉