1. 程式人生 > 其它 >C/C++ assert()函式用法總結

C/C++ assert()函式用法總結

技術標籤:C++函式庫常識

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main()
{
    FILE *fp;
    fp=fopen("test.txt", "w");//以可寫的方式開啟一個檔案,如果不存在就建立一個同名檔案
    assert(fp);//所以這裡不會出錯
    fclose(fp);

    fp=fopen( "noexitfile.txt", "r" );//以只讀的方式開啟一個檔案,如果不存在就開啟檔案失敗
    assert(fp);//所以這裡出錯
    fclose( fp ); //程式永遠都執行不到這裡來
    return 0;
}

已放棄使用assert()的原因是,頻繁的呼叫會極大的影響程式的效能,增加額外的開銷。在除錯結束後,可以通過在包含#include <assert.h>的語句之前插入 #define NDEBUG 來禁用assert呼叫,示例程式碼如下:

#include <stdio.h>
#define NDEBUG
#include <assert.h>