Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经告诉 VC++ 在发布模式下编译我的程序,但 assert() 语句仍然会触发。我认为断言应该从发布版本中编译出来以提高性能。这是怎么回事?我是否需要设置其他一些设置来跳过编译它们?
检查您正在定义的预处理器符号。Debug 构建通常会定义_DEBUG,Release 构建通常会定义NDEBUG。NDEBUG断言通常会在定义时被关闭。
_DEBUG
NDEBUG
在调试器下打开应用程序。断言对话框启动时执行调试->中断。查看断言触发的源文件。现在查看该文件的构建设置。如果设置看起来正确并且您正在加载发布版本,请在编译器命令行上设置 /P 和 /d1PP 以显示错误 #define 的来源。
马丁