日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
斷言(assert)有多重要,你不會不知道吧

本文轉(zhuǎn)載自微信公眾號「編程學(xué)習(xí)基地」,作者deroy 。轉(zhuǎn)載本文請聯(lián)系編程學(xué)習(xí)基地公眾號。  

鼓樓ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

斷言(assert)

編寫代碼時,我們總是會做出一些假設(shè),斷言就是用于在代碼中捕捉這些假設(shè)。斷言表示為一些布爾表達(dá)式,程序員相信在程序中的某個特定點(diǎn)該表達(dá)式值為真,可以在任何時候啟用和禁用斷言驗(yàn)證,因此可以在測試時啟用斷言而在部署時禁用斷言。同樣,程序投入運(yùn)行后,最終用戶在遇到問題時可以重新啟用斷言。

簡單來說如果結(jié)果和你的預(yù)期一樣,那么OK,結(jié)果為真繼續(xù)運(yùn)行.如果結(jié)果和預(yù)期不符,那么程序會拋出一個系統(tǒng)級錯誤(不是異常),并且終止程序運(yùn)行。

assert() 用法

assert宏的原型定義在 中,其作用是如果它的條件返回錯誤,則終止程序執(zhí)行,原型定義:

 
 
 
 
  1. #include  
  2. void assert( int expression );  //expression:布爾表達(dá)式 

assert的作用是現(xiàn)計算表達(dá)式 expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯信息

然后通過調(diào)用 abort 來終止程序運(yùn)行。

示例:

 
 
 
 
  1. #include  
  2. #include  
  3. int main(void) 
  4.  FILE* fp; 
  5.  fp = fopen("test.txt", "w");//以可寫的方式打開一個文件,如果不存在就創(chuàng)建一個同名文件 
  6.  assert(fp); //所以這里不會出錯 
  7.  fclose(fp); 
  8.  fp = fopen("noexitfile.txt", "r");//以只讀的方式打開一個文件,如果不存在就打開文件失敗 
  9.  assert(fp); //所以這里出錯 
  10.  fclose(fp); //程序永遠(yuǎn)都執(zhí)行不到這里來 
  11.  return 0; 

運(yùn)行報錯如下:

控制臺輸出如下:

 
 
 
 
  1. Assertion failed: fp, file D:\vs2019\Console\微信公眾號推送\微信公眾號推送\微信公眾號推送.cpp, line 11 

工程文件使用示例:

 
 
 
 
  1. void resize(int num) 
  2.     if(num<0) 
  3.         assert(nullptr); 
  4.     if(num >len) 
  5.   //... 

作者:夢凡


網(wǎng)站欄目:斷言(assert)有多重要,你不會不知道吧
本文URL:http://m.5511xx.com/article/dpjigpo.html