真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言斷言assert-創(chuàng)新互聯(lián)

assert宏的原型定義在中,他的作用是如果他的表達(dá)式為error,就終止程序執(zhí)行,

成都創(chuàng)新互聯(lián)是專業(yè)的松山網(wǎng)站建設(shè)公司,松山接單;提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行松山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

盡量利用斷言來提高代碼的可測試性

使用assert的缺點(diǎn)是,頻繁的調(diào)用會(huì)極大的影響程序的性能,增加額外的開銷。
在調(diào)試結(jié)束后,可以通過在包含#include 的語句之前插入 #define NDEBUG 來禁用assert調(diào)用

如何合理利用 ASSERT(斷言)

由于 ASSERT 只要“#define NDEBUG”之后就不參與編譯,因此在調(diào)試時(shí)有利于快速定位錯(cuò)誤,并 且在發(fā)布后這些判斷不影響執(zhí)行效率(出現(xiàn)問題之后可以再次打開斷言進(jìn)行調(diào)試)。

但是一般 ASSERT 不 能用來檢查錯(cuò)誤的發(fā)生。

如下例子

char *strdup(char *str) { 

char *new_str;

 ASSERT(str != NULL); 

new_str = (char *)malloc(strlen(str) + 1); 

ASSERT(new_str != NULL)

 strcpy(new_str, str);

 return new_str; 

}

另外使用斷言有如下約定:

i. 每個(gè) assert 只檢查一個(gè)條件,因?yàn)橥瑫r(shí)檢驗(yàn)多個(gè)條件時(shí),如果斷言失敗,無法直觀的判斷是哪個(gè)條件失敗。

ii. 不能再 assert 中加入執(zhí)行語句,比如 assert(i++)是不合理的,,因?yàn)閍ssert只在DEBUG中生效,如果這么做,會(huì)使用程序在真正運(yùn)行時(shí)遇到問題

iii. assert 后面需要增加空行。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文標(biāo)題:c語言斷言assert-創(chuàng)新互聯(lián)
當(dāng)前URL:http://weahome.cn/article/doossd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部