我懷疑一些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