我怀疑一些ASSERTION代码有副作用。我想关闭ASSERT而不对其代码进行任何其他更改。我正在使用MSVS2008。从调试切换到发布不会做,因为这将改变内存初始化的方式。如何关闭C++中的ASSERT(x)?
5
A
回答
6
在你的头文件的cassert
夹杂物后上方将这个(或包括包含cassert
)
#undef assert
#define assert(x) ((void)0)
,使其扩展到没有任何东西重新定义了断言马可。
6
相关问题
- 1. 表格关闭X C#
- 2. 如何在c中解释(assert)?
- 3. 如何关闭在C#中的窗口
- 4. 如何在Mac OS X上关闭Redis?
- 5. C#MetroFrameWork如何关闭MetroForm
- 6. 如何关闭MDIChild C#VS2010?
- 7. X(关闭)形状
- 8. 用ASSERT-C++
- 9. 如何在C#语言中关闭webform?
- 10. X关闭QToolButton中的按钮
- 11. 如何关闭ASP.NET图表控件中的x轴标签?
- 12. 如何使用Perl中的OS-X ScriptingBridge框架关闭窗口?
- 13. assert等于空括号(assert x ==())是什么意思?
- 14. 弹出窗体关闭x
- 15. 如何在Rails 3.2.x中关闭MySQL严格模式
- 16. 如何在静态popover中添加关闭图标(x)?
- 17. 如何等待应用程序在OS X中关闭?
- 18. 关闭在C#
- 19. C#关闭StreamWriter
- 20. 如何关闭
- 21. QApplication:如何正常关闭Ctrl-C
- 22. 如何使用c#关闭网页?
- 23. 如何从C#关闭PDF文件#
- 24. C如何捕获关闭终端
- 25. 如何限制用户关闭Winform c#
- 26. 如何关闭线程分离C++?
- 27. 如何关闭MDI子窗体C#
- 28. 如何关闭Android中
- 29. 如何在lua中关闭?
- 30. 如何在Android中关闭?
如果我没有弄错,那会关闭断言(程序终止),但不会删除并停止表达式的评估。也许:'#define assert(x)(void)0'? – UncleBens 2010-02-11 17:23:43
@UncleBens Ak,你是对的,但是'(void)0'不是必需的。 '(x)'是。 – Yacoby 2010-02-11 17:36:52
@Yacoby:一般来说,你需要它,因为有'assert'扩展到语句有助于警告等。例如,如果'assert'在释放模式下扩展为无,则if(foo)assert(bar);否则断言(baz);'可能会警告空和空和/或其他子句。至少,C标准的最新草案*要求*以这种方式实现内置断言。 – 2010-02-11 17:49:20