C 中為什麼要使用斷言

2021-07-24 19:24:05 字數 354 閱讀 7965

斷言assert是僅在debug下有效的巨集,當其中的條件為假時,觸發錯誤提示。

使用斷言的目的是捕捉不應該發生的非法情況。注意:不要混淆非法情況與錯誤情況之間的區別,後者的出現是因為**錯誤,是一定要作出處理的。

如何使用:

1、在函式的入口處,使用斷言檢查引數的有效性(合法性)。

2、在編寫函式時,要進行反覆的思考:「我打算做哪些假定?」一旦確定了的假定,就要使用斷言對假定進行檢查。比如傳入的char*可能為空等。

3、一般教科書都鼓勵程式設計師們進行防錯設計,但要記住這種程式設計風格可能會隱瞞錯誤。當進行防錯設計時,如果「不可能發生」的事情的確發生了,則要使用斷言進行報警。

4、包含標頭檔案#include

c 為什麼要使用介面

c 為什麼要使用介面?通俗的講,就是為了降低耦合度。給大家看乙個我見過的很搞笑的例子。看看下面的程式 乙個學校裡邊,有兩種人 學生 老師。他們都要吃飯和睡覺。public inte ce i人 public class 學生 i人 public void 睡覺 其他特有方法,比如泡妞 打遊戲 pub...

C 中為什麼有時要使用extern C

在c 引用lua的標頭檔案時,我們總會寫成 extern c 為什麼要這麼做呢?原因是c 的編譯器會對程式中符號進行修飾,這個過程在編譯器中叫符號修飾 name decoration 或者符號改編 name mangling 同時我們知道c 是能夠相容c的,如果我們有了乙個c語言的標頭檔案和其對於的...

React中為什麼要使用immutableJs

當父元件讀取子元件資料form,賦值給obj,然後對obj進行一些修改過程中,直接賦值就是淺拷貝,修改obj之後會影響form物件,也就會影響子元件中的form的值,這也就是js中的隱患,在react中向上層元件或者下層元件傳遞物件,很難保證這個物件是否會被修改,當不希望對form產生影響的時候,需...