天天看點

assert 斷言

<轉載學習>使用一個網上轉載最多的一個例子,assert的作用是現計算表達式 expression ,如果其值為假(即為0),那麼就列印錯誤資訊,終止程式,例子如下:

// test.cpp : Defines the entry point for the console application.

#include "stdafx.h"

#include <assert.h>

#include <iostream>

#include <stdlib.h>

#define NDEBUG

#define MAX_BUFFER_SIZE 100

void resetBufferSize(int nNewSize)

{

//功能:改變緩沖區大小,

//參數:nNewSize 緩沖區新長度

//傳回值:緩沖區目前長度 

//說明:保持原資訊内容不變     nNewSize<=0表示清除緩沖區

assert(nNewSize >= 0);

assert(nNewSize <= MAX_BUFFER_SIZE);

}

int _tmain(int argc, _TCHAR* argv[])

{

FILE *fp;

fp =fopen("test.txt","w");//以可寫的方式打開一個檔案,如果不存在就建立一個同名檔案

assert(fp);//是以這裡不會出錯

fclose(fp);

fp =fopen("noexittest.txt","r");//以隻讀的方式打開一個檔案,如果不存在就打開檔案失敗

assert(fp);//是以這裡出錯

fclose(fp);

//resetBufferSize(10);//修改不同的數值可以測試assert()

system("pause");

return 0;

}

使用assert() 宏,使用斷言可以使得代碼更加穩定和品質更高。當需要确認一個數值為False時,則可以使用斷言,單元測試必須

繼續閱讀