我一直在將模塊添加到http://minisat.se/MiniSat.html包中。我有一堆asserts
,我現在意識到既不會被觸發,甚至編譯。它是如何的?我搜索了網絡上的「掩蓋斷言」,但沒有線索。不知何故,包的制定規則是否可以刪除斷言?即使assert(0)
不會導致程序到SIGABORT ...C++中的掩碼斷言
0
A
回答
2
檢查您的預處理器設置。當定義了NDEBUG
(即編譯器命令行上的-DNDEBUG
)時,所有斷言將被刪除。
3
斷言宏取決於定義NDEBUG。
如果NDEBUG被定義則斷言被定義爲:
#define assert(ignore) ((void)0)
斷言不僅在調試模式下檢查,而不是在釋放模式。
相關問題
- 1. C語言高效的數組掩碼
- 2. 目標中的掩碼C
- 3. Android中的代碼斷言
- 4. C++中的模板斷言?
- 5. c語言的中斷
- 6. Java:是否SourceDataLine.write(...)掩碼中斷?
- 7. C++ preconditions /斷言
- 8. 從rspec中斷言斷言與斷言
- 9. 在C中斷言權限#
- 10. c語言中斷循環
- 11. 在硒C中斷言#
- 12. C# - ;使用斷言
- 13. C++ static_cast與斷言
- 14. 在ViewModel中的掩碼字符串C#
- 15. C++中的特殊掩碼操作
- 16. C#中MaskedTextBox的電子郵件掩碼#
- 17. 的Xerces-C斷言錯誤
- 18. 陣列上的C#斷言
- 19. 有效網絡掩碼的c代碼
- 20. 生產代碼中的NUnit斷言
- 21. C#多邊形掩碼?
- 22. C#掩碼文本框
- 23. C#位掩碼驗證
- 24. C語言中斷的邏輯錯誤
- 25. C中帶有負浮點的斷言
- 26. 測試斷言SpringSecurity編碼的密碼
- 27. 清除特定的中斷掩碼時是否推遲或忽略中斷?
- 28. 如何在C++中使用位掩碼?
- 29. 如何在c中掩蓋密碼?
- 30. 更改輸入掩碼的掩碼?
hm,所以「忽略」也是一些關鍵字?謝謝你們,我在makefile模板中刪除了「-D NDEBUG」行,現在它可以工作。 – Ilonpilaaja 2012-02-21 17:57:25
編號'ignore'不是關鍵字。它是宏參數,在這種情況下宏定義忽略宏定義。 – 2012-02-21 18:15:22