維護(assertion)敘述

當自己寫的函式庫要提供他人使用時,適當的利用維護敘述,可以建立安全的使用
介面,避免他人因為使用不當,而造成不可預期的後果。

C 語言有自己的維護函式- assert() ,使用方法如下:

assert(iTotalNumber < 1000);

當程式執行到該行時,若 iTotalNumber < 1000 則程式可以繼續執行;
若 iTotalNumber >= 1000,則會秀出維護錯誤訊息的字串,並結束程式。


assert() 是什麼?怎樣用它?
這是個定義在 中的巨集(macro),用來測試斷言(assert)。
一個斷言本質上是寫下程序員的假設,如果假設被違反,那表明有個嚴重的程序錯誤。
例如, 一個假設只接受非空指針的函數,可以寫: assert(p != NULL);
一個失敗的斷言會中斷程序。
斷言不應該用來捕捉意料中的錯誤,例如 malloc() 或 fopen() 的失敗。

assert 是個debug用的巨集(macro),如果是debug version,就輸出一些訊息告訴使用者,有問題發生。
等到要產出release version就可以不用改程式,直接無視assert的程式碼。(不執行判斷,也不輸出錯誤訊息)

一般是用在DEBUG階段,將一些設計邏輯上不會發生的狀況使用ASSERT做檢查。
因為寫程式總是會腦袋發昏,將一些條件寫錯,所以可以用ASSERT來做強化的動作。

BB 發表在 痞客邦 PIXNET 留言(0) 人氣()