是否有标准化(例如由所有主要编译器实现)#define,这将允许我区分调试和发布版本?
答案 0 :(得分:17)
如果相信
#ifdef NDEBUG
// nondebug
#else
// debug code
#endif
是最便携的。
但是没有编译器知道你是在编译调试还是发布,所以这不是自动的。但是这个由assert.h在c-runtime中使用,所以它很常见。 Visual Studio将设置它,我相信大多数其他IDE也会这样。
答案 1 :(得分:3)
由于没有调试或发布的标准定义,因此无法执行此操作。我可以想到至少有四种不同的东西,它们都可以独立改变。只能在代码中测试两个。
答案 2 :(得分:0)