99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

徐土豆
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
用“位操作”取代“取模操作”判斷奇數(shù)偶數(shù)
c語言運(yùn)行時(shí)出現(xiàn)segment fault的原因
一文理解C語言中的volatile修飾符
C語言中的內(nèi)存布局(memory layout)
do{}while(false)結(jié)構(gòu)的妙用
const修飾符并不保證運(yùn)行時(shí)的常數(shù)性質(zhì)
作者動態(tài) 更多
給定計(jì)算預(yù)算下的最佳LLM模型尺寸與預(yù)訓(xùn)練數(shù)據(jù)量分配
3星期前
大模型推理時(shí)的尺度擴(kuò)展定律
3星期前
世界多胞體與世界模型
05-13 09:42
獎勵模型中的尺度擴(kuò)展定律和獎勵劫持
05-12 08:41
MeCo——給預(yù)訓(xùn)練數(shù)據(jù)增加源信息,就能減少33%的訓(xùn)練量并且提升效果
05-08 09:13

do{}while(false)結(jié)構(gòu)的妙用

本文轉(zhuǎn)自徐飛翔的“do{}while(false)結(jié)構(gòu)的妙用

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。

看源碼的時(shí)候,發(fā)現(xiàn)某個框架的源碼里面經(jīng)常出現(xiàn)如下片段:

do{
	if (ASSERT(some_input_1) && ASSERT(some_input_2)) {
		...
	}
} while(false)

我對于do{} while(false)結(jié)構(gòu)的使用,在此之前無非兩種,第一種是基本用法,也就是把它當(dāng)成循環(huán)結(jié)構(gòu)使用,和for(;;),while(){}沒太大區(qū)別;還有一種用法是用在宏定義中,如下所示:

#define LARGER(x,y) x > y? x:y

int a = 2 * LARGER(10,30);

此時(shí)我們本來期望a = 60,其實(shí)因?yàn)樽址娲脑?,?shí)際上是int a = 2 * x > y?x:y =30。這就是bug的源頭之一。通過do{macro_code} while(false)結(jié)構(gòu),能對macro_code進(jìn)行很好的分割。

然而,這個結(jié)構(gòu)還有一個好處,其本質(zhì)是一個循環(huán)結(jié)構(gòu),意味著它可以提前break,在多條件判斷的環(huán)境下是一個作為對goto的很好的取代。如:

do {
	if (ASSERT(some_input_1) && ASSERT(some_input_2)) {
		ERR_LOG('log_info', pFile);
		break;
	}
	if (IS_EXIST(path)) {
		ERR_LOG('log_info', pFile);
		break;
	}
	// the residual code you need , the main stream
} while(false)

通過這種手段,基于作為入口條件判斷,如果一旦不符合條件,可以直接break,跳到循環(huán)之外,這相當(dāng)于很好地應(yīng)用了goto的功能,而沒有引入goto的負(fù)作用(全局跳轉(zhuǎn),難以維護(hù))。

Reference

[1]. https://stackoverflow.com/questions/2314066/do-whilefalse

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 1
關(guān)注 52
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 中文字幕日本 | 欧美激情视频一区二区 | 亚洲国产精品久久久久秋霞不卡 | 精品久久久国产 | 伊人一区二区三区 | 久久久久久久久免费 | 在公车上拨开内裤进入毛片 | 99精品偷拍视频一区二区三区 | 国产精品欧美综合亚洲 | 久久久av免费 | 国内精品久久久久影院免费 | 天天色天天射天天操 | 18videossex性欧美69 | 澳门一级毛片 | aaaa在线观看 | 四虎影视免费在线 | 欧美日韩免费专区在线 | 一区二区视频免费在线观看 | 亚洲欧美日韩中文加勒比 | 亚洲综合色婷婷六月丁香宅男大增 | 中文字幕第9页 | 国产一及毛片 | 日本老妇性视频 | 顶级少妇做爰视频在线观看 | Av天堂亚洲好男人 | 人妻少妇av中文字幕乱码 | 无码性按摩AV在线观看 | 年轻的朋友4韩剧在线观看 亚洲乱码一二三四区 | 印度毛茸茸bbbbxxxx | 色一情一乱一乱一区99av白浆 | 四虎影音 | 高清视频在线观看免费播放 | 国产午夜精品久久久久久免费视 | 日韩视频一区二区三区在线观看 | 一二三区不卡 | 欧美日韩一区二区精品 | 欧洲成人午夜精品无码区久久 | 国产拍精品一二三 | 最新中文字幕一区二区三区 | 亚洲人成网站在线观看妞妞网 | 国产无遮挡色视频免费观看性色 |