为什么使用VS2019以 Release 版本运行程序时, assert 还会生效?

如题所述

第1个回答  2022-06-16

调试帮助—— assert 宏和 NDEBUG 宏

assert 宏依赖于 NDEBUG ,若在头文件 assert.h 前定义了 NDEBUG ,则 assert 失效。 assert 在 Debug 版本才能生效,在 Release 版本中无法生效的原因:

可能有些人会出现选了 Release 版本但是还是会执行 assert 。可以在属性右上方点击配置管理器查看 活动解决方案的配置和平台 对应的各个 项目的配置和平台

会发现最后一张图中,虽然活动解决方案的配置和平台是 Release x86 ,但是项目的配置和平台选用的却是 Debug 和 Win32 平台。所以才会出现明明以 Release 版本运行,而 assert 还是会生效,可以修改。

相似回答