斷言(assert)及其作用

2021-09-26 08:06:34 字數 822 閱讀 9253

斷言是一種除錯機制,用於驗證**是否符合編碼人員的預期。編碼人員在開發期間應該對函式的引數、**中間執行結果合理地使用斷言機制,確保程式的缺陷盡量在測試階段被發現。

也就是說,斷言assert函式只能在測試階段用,不能再release版本使用。那麼我們可以用什麼方法實現呢?巨集定義。(ps:不用作斷言的巨集,盡量不要包含assert)

#include

//需要包含的標頭檔案,release版本去掉,測試時使用

#include

/* assert 的使用 */

#define debug

// release 版本注釋掉即可,測試版本定義

#ifdef debug

#define assert(f) assert(f)

#else

#define assert(f) ((void)0)

#endif

void

display

(int n)

intmain()

為什麼斷言只能用於測試階段: 如果用於執行階段,斷言可能會使程式異常退出,但其實這不是最重要的(mdzz)。最根本的運用是,這種錯誤應該是在程式設計測試階段解決的。

使用斷言(assert)你需要注意的事:

斷言必須使用巨集定義,靜止直接呼叫系統提供的assert()–如上所述,斷言一般用於測試版本

執行時可能會導致的錯誤,嚴禁使用斷言

嚴禁在斷言內改變執行環境

一般不要把多條語句放在同乙個斷言中

斷言assert總結

0.python的assert是用來檢查乙個條件,如果它為真,就不做任何事。如果它為假,則會丟擲asserterror並且包含錯誤資訊。assert語句是一種插入除錯斷點到程式的一種便捷的方式。1.使用斷言可以建立更穩定,品質更好且不易於出錯的 當需要在乙個值為false時中斷當前操作的話,可以使用...

assert(斷言)用法

斷言語句是將除錯斷言插入到程式中的一種方便方法。1.用法 assert condition讓程式來測試condition,如果condition為false就會生成乙個assertionerror。相當於 if not condition raise assertionerror 2.示例 asse...

斷言(assert) 學習

在我學習程式設計時,我一直認為斷言 assert 是個報錯函式,事實上,它居然是個巨集,並且作用並非 報錯 在經過對其進行一定了解之後,對其作用及用法有了一定的了解,斷言assert是定義在assert.h中的 巨集 只在debug版本起作用,而在release版本不起作用。用法 assert 表示...