青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

春暖花開
雪化了,花開了,春天來了
posts - 149,comments - 125,trackbacks - 0

下面摘自http://www.shnenglu.com/woaidongmao/archive/2008/11/03/65897.html

看到他們的在爭(zhēng)論很有意思,我不是很懂。

有利還是有弊呢?


EXT_ASSERT將ASSERT與if結(jié)合在一起

ASSERT在DEBUG程序時(shí)候幫了太多太多忙,不過在ASSERT判斷傳入?yún)?shù)后,還需要if再按相同條件判斷一遍,不符合規(guī)則return,這樣才是正確的邏輯。但這樣代碼難看,且工作重復(fù)無趣,又容易出現(xiàn)差漏。

剛弄了個(gè)簡(jiǎn)單EXT_ASSERT宏,按我的理解應(yīng)該可以解決問題,但不確定是否有漏洞,發(fā)出來大家一起瞄瞄。

 

#define RET_VOID
#define EX_ASSERT(exp, ret) {ASSERT(exp);if(!(exp))return(ret);}

 

BOOL CXXX::FunXXX(const data* p_data)
{
   EXT_ASSERT(p_data, FALSE);//---- 返回BOOL型

}

int CXXX::FunXXX(const data* p_data)
{
   EXT_ASSERT(p_data, -1);//---- 返回int型

}

const retdata* CXXX::FunXXX(const data* p_data)
{
    EXT_ASSERT(p_data, NULL);//---- 返回NULL指針

}

retdata CXXX::FunXXX(const data* p_data)
{
    EXT_ASSERT(p_data, retdata());//---- 返回空對(duì)象

}

void CXXX::FunXXX(const data* p_data)
{
    EXT_ASSERT(p_data, RET_VOID);//---- 僅僅return

}

posted on 2008-11-03 23:34 肥仔 閱讀(333) 評(píng)論(7)  編輯 收藏 引用 所屬分類: C++存檔

評(píng)論

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

哥們兒,如果你是說MFC里的ASSERT的話(看你的類命名風(fēng)格,估計(jì)是吧),在retail build里,ASSERT是完全不會(huì)被放到代碼里的。你這樣用ASSERT,把ASSERT和if條件綁在一起就等于把處理錯(cuò)誤的斷言和正常程序邏輯綁在了一起,不是一個(gè)好的設(shè)計(jì)。如果一定要這么干,也該是綁VERIFY,至少在retail build里VERIFY里的邏輯還會(huì)被執(zhí)行。

ASSERT應(yīng)該拿來斷言程序正常執(zhí)行完全不可能出現(xiàn)的錯(cuò)誤(這些錯(cuò)誤會(huì)在debug build里出現(xiàn)是因?yàn)楫?dāng)前程序還不完善),在正常邏輯中,他們是不應(yīng)該用程序邏輯去handle的錯(cuò)誤,所以一句ASSERT夠了。
2008-11-04 05:27 | www.helpsoff.com.cn

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

@www.helpsoff.com.cn
我在Imperfect C++中看到過相同的言論。
不過我的應(yīng)用是,常常用ASSERT檢測(cè)參數(shù)的合法性,ASSERT之后,當(dāng)然還要if一把了,對(duì)于ASSERT和if不要放在一起這種觀點(diǎn),我不是很認(rèn)同,我覺得放在一起很好用的。

另外,在Release下,ASSERT沒了,但是if留下了,這是需要的效果。
2008-11-04 10:45 | 肥仔

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

我不會(huì)這么用,斷言的目的去那了。
2008-11-04 11:30 | Touchsoft

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

@肥仔
哥們兒,你還是沒理解,ASSERT的不是拿來干這個(gè)的。你愛怎樣玩就怎樣玩吧,反正自己的代碼自己維護(hù),其他人的意見聽不聽在你。
2008-11-04 12:29 | www.helpsoff.com.cn

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

@www.helpsoff.com.cn
謝謝你的意見,但是不采納。原因有3點(diǎn)經(jīng)歷:

1、ASSERT判斷函數(shù)參數(shù)合法性,調(diào)試時(shí)會(huì)幫了很大的忙;
2、if判段函數(shù)參數(shù)合法性,是健壯性的一部分;
3、ASSERT和if 合在一起,不覺得有任何不妥,且ASSERT不出現(xiàn)在Release中,這正是需要的。

可能涉及到的一個(gè)爭(zhēng)論是,檢測(cè)參數(shù)合法形是調(diào)用者,還是被調(diào)用者的責(zé)任?
C/C++的主流是調(diào)用者保證參數(shù)的合法性,被調(diào)用者不檢測(cè)參數(shù)合法性,這就是為什么認(rèn)為,只要ASSERT,不需要if了。
strcpy(szBuf, NULL)之所以讓一個(gè)程序崩潰也是這個(gè)原因,但是為什么要讓它崩潰?能夠不崩潰,繼續(xù)執(zhí)行豈不是更好嗎?
2008-11-04 13:44 | 肥仔

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

1) 沒人否認(rèn)ASSERT的用處;
2) 需要if判斷處理的參數(shù)和用ASSERT斷言的不合法參數(shù),不應(yīng)屬于一個(gè)范疇,不應(yīng)該混合在一起處理;
3) 代碼不管怎么寫在沒遇到問題前都不會(huì)有什么不妥,自己覺得好就好吧。

你當(dāng)然可以去寫一個(gè)萬能的strcpy,但是如何能保證你的strcpy是真正的“萬能”的呢?不崩潰繼續(xù)執(zhí)行倒是沒問題,但是出問題的真正根源在哪里呢,你這樣做不就掩蓋了問題嗎?應(yīng)該做的是出現(xiàn)這樣的問題時(shí),能有用且有效的指出錯(cuò)誤,而不是做garbage in, garbage out。

設(shè)計(jì)代碼,不去扯那些玩得出花花的設(shè)計(jì)模式,有些很基本很直白的原則,比如說“garbage in, garbage out”,比如高內(nèi)聚/低耦合...說多了也沒意思,樓主愛怎么玩怎么玩,大家都是這么過來的,其中的東西自己去體會(huì)了。
2008-11-04 15:35 | www.helpsoff.com.cn

# re: EXT_ASSERT將ASSERT與if結(jié)合在一起  回復(fù)  更多評(píng)論   

@www.helpsoff.com.cn
程序以外,人生很多地方都需要與別人探討,對(duì)于不合己見者,請(qǐng)不必太在懷,更沒必要帶著情緒和語氣,擺出姿態(tài)。這樣才能贏得更多的合作,我想我的這幾句話還算中肯。
2008-11-04 16:32 | 肥仔
posted on 2008-11-04 18:28 Sandy 閱讀(415) 評(píng)論(0)  編輯 收藏 引用 所屬分類: c++學(xué)習(xí)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜国产成人av电影男同| 一本色道久久综合狠狠躁篇的优点 | 女仆av观看一区| 欧美午夜激情小视频| 欧美gay视频| 黄色一区二区三区| 亚洲欧美一区二区激情| 亚洲午夜一区二区三区| 欧美高清在线| 欧美黄色免费网站| 在线观看欧美亚洲| 久久久999国产| 久久精品免费电影| 国产欧美日韩麻豆91| 一本一本大道香蕉久在线精品| 亚洲精品网址在线观看| 免费试看一区| 欧美成人午夜激情在线| 永久免费毛片在线播放不卡| 久久国产精品网站| 久久久久欧美精品| 国产亚洲一区精品| 欧美一级欧美一级在线播放| 性8sex亚洲区入口| 国产欧美亚洲日本| 午夜亚洲激情| 久久久久国产精品一区三寸| 国产免费观看久久| 午夜精品视频在线观看| 久久久99国产精品免费| 好吊日精品视频| 久久久久久久久岛国免费| 美女精品在线| 亚洲国产精品一区制服丝袜| 久久综合久久久| 亚洲激情视频在线观看| 日韩午夜在线观看视频| 欧美日韩精品久久久| 日韩亚洲国产精品| 午夜一区不卡| 狠狠色丁香久久婷婷综合_中| 久久国产天堂福利天堂| 欧美国产免费| 亚洲午夜精品久久| 国产日韩欧美综合| 久热精品视频在线免费观看| 亚洲人成艺术| 欧美亚洲日本一区| 好吊妞这里只有精品| 欧美本精品男人aⅴ天堂| 99v久久综合狠狠综合久久| 欧美一区在线视频| 亚洲福利视频二区| 欧美日韩在线观看一区二区三区 | 国产精品99久久久久久白浆小说| 亚洲欧美一区二区三区在线| 韩日精品在线| 欧美日韩国产丝袜另类| 午夜欧美电影在线观看| 欧美激情视频网站| 午夜在线精品偷拍| 亚洲激情中文1区| 国产精品男人爽免费视频1| 久久精品国产在热久久| 亚洲精品乱码久久久久| 久久久久久伊人| 亚洲视频1区| 亚洲国产女人aaa毛片在线| 国产精品成av人在线视午夜片| 久久久久.com| 亚洲一卡久久| 亚洲国产成人在线视频| 久久国产综合精品| 亚洲午夜视频在线观看| 亚洲国产成人午夜在线一区| 国产乱人伦精品一区二区| 欧美国产一区二区在线观看| 欧美伊人久久久久久午夜久久久久| 最新国产成人在线观看| 久久野战av| 欧美一区二区三区精品| 中国女人久久久| 亚洲国产乱码最新视频| 国产综合av| 国产免费成人| 国产精品国产三级国产aⅴ无密码| 欧美va天堂va视频va在线| 篠田优中文在线播放第一区| 一区二区三区欧美成人| 亚洲国产清纯| 亚洲第一在线| 免费看亚洲片| 久久嫩草精品久久久精品| 在线亚洲欧美| 亚洲欧洲日本国产| 国产亚洲精品bt天堂精选| 国产精品成人一区二区网站软件| 欧美成人网在线| 你懂的网址国产 欧美| 久久精品中文字幕一区| 久久aⅴ乱码一区二区三区| 亚洲欧美卡通另类91av| 欧美午夜精品伦理| 欧美极品aⅴ影院| 欧美高清不卡| 欧美精品自拍| 欧美日韩国产bt| 欧美日韩精品系列| 欧美日韩一区二区欧美激情| 欧美精品一卡二卡| 欧美日韩亚洲一区二区三区在线观看| 欧美国产亚洲另类动漫| 欧美激情精品久久久六区热门| 欧美成人伊人久久综合网| 欧美成年人视频网站| 欧美国产日韩一二三区| 欧美精品在线视频观看| 欧美午夜激情视频| 国产精品日韩二区| 国产亚洲二区| 亚洲第一页在线| 亚洲精品资源| 一区二区三区蜜桃网| 亚洲天堂视频在线观看| 午夜精品www| 久久久一区二区三区| 欧美成ee人免费视频| 亚洲精品视频在线观看免费| 一本色道久久| 久久aⅴ国产欧美74aaa| 每日更新成人在线视频| 欧美日韩一区二区三区在线观看免| 国产精品二区在线观看| 国产日韩欧美综合| 亚洲欧洲精品一区二区精品久久久| 99国产精品久久久久老师| 午夜日韩电影| 欧美sm重口味系列视频在线观看| 亚洲黄网站黄| 午夜精品久久久久久99热| 老色批av在线精品| 欧美天堂在线观看| 精品电影一区| 在线亚洲国产精品网站| 久久久午夜精品| 亚洲免费观看| 欧美一区亚洲二区| 欧美—级高清免费播放| 国产精品腿扒开做爽爽爽挤奶网站| 国内精品免费在线观看| 在线亚洲欧美| 老司机免费视频久久| 一区二区精品在线| 蜜乳av另类精品一区二区| 国产精品乱码一区二三区小蝌蚪| 激情综合激情| 羞羞答答国产精品www一本| 亚洲第一综合天堂另类专| 亚洲女人小视频在线观看| 欧美国产日韩一二三区| 国产一区在线看| 亚洲视频免费看| 欧美国产91| 欧美在线视频免费观看| 国产精品久久午夜| 一区二区久久久久| 欧美成人免费va影院高清| 亚洲欧美不卡| 欧美日韩午夜在线| 亚洲精品久久久久久下一站 | 亚洲第一区在线| 亚洲欧美日韩系列| 欧美日韩中文字幕| 亚洲精品中文字幕女同| 免费成人毛片| 久久精品99国产精品日本| 国产精品婷婷午夜在线观看| 亚洲色图综合久久| 亚洲日本免费| 欧美大片免费| 亚洲日本久久| 欧美激情一区二区三区蜜桃视频| 久久av一区二区三区亚洲| 国产精品主播| 香蕉成人伊视频在线观看| 一区二区三区精品| 欧美午夜片在线观看| 亚洲无线视频| 一区二区三区日韩精品| 欧美色欧美亚洲另类二区| 国产精品99久久久久久久vr| 亚洲国产日韩欧美综合久久| 女女同性女同一区二区三区91| 亚洲第一偷拍| 亚洲第一网站免费视频| 欧美国产日韩一区二区三区| 亚洲麻豆视频| 99精品欧美一区二区三区综合在线| 欧美日韩在线第一页| 亚洲欧美日韩第一区 |