您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關C++ 中assert()函數如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
assert宏的原型定義在< assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義:
#include < assert.h> void assert( int expression );
C++ assert()函數的作用是現計算表達式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息,然后通過調用 abort 來終止程序運行。請看下面的程序清單badptr.c:
#include < stdio.h>
#include < assert.h>
#include < stdlib.h>
int main( void )
{
FILE *fp;
fp = fopen( "test.txt", "w" );
//以可寫的方式打開一個文件,如果不存在就創建一個同名文件assert( fp ); //所以這里不會出錯
fclose( fp );
fp = fopen( "noexitfile.txt", "r" );
//以只讀的方式打開一個文件,如果不存在就打開文件失敗assert( fp ); //所以這里出錯
fclose( fp ); //程序永遠都執行不到這里來
return 0;
}
[root@localhost error_process]# gcc badptr.c
[root@localhost error_process]# ./a.out
a.out: badptr.c:14: main: Assertion `fp' failed.
已放棄
使用C++ assert()函數的缺點是,頻繁的調用會極大的影響程序的性能,增加額外的開銷。 在調試結束后,可以通過在包含#include < assert.h>的語句之前插入 #define NDEBUG 來禁用assert調用,示例代碼如下:
#include < stdio.h> #define NDEBUG #include < assert.h>
上述就是小編為大家分享的C++ 中assert()函數如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。