......
ASSERT( n != 0);
k = 10/ n;
......
限制性:
區別性:
#include <assert.h>
void assert( int expression );
#include <stdio.h>
#define NDEBUG
#include <assert.h>
ASSERT用法
1)在函數開始處檢驗傳入參數的合法性
如:
int CBufferPool::ResetBufferSize(int nNewSize)
{
//功能:改變緩衝區大小,
//參數:nNewSize 緩衝區新長度
//返回值:緩衝區當前長度
//說明:保持原信息內容不變 nNewSize<=0表示清除緩衝區
ASSERT(nNewSize >= 0);
ASSERT(nNewSize <= MAX_BUFFER_SIZE);
}
2)每個ASSERT只檢驗一個條件,因爲同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗
ASSERT(nOffset+nSize <= m_nInfomationSize);
3)不能使用改變環境的語句,因爲ASSERT只在DEBUG個生效,如果這麼做,會使用程序在真正運行時遇到問題
錯誤: ASSERT(i++ < 100)
i++;