亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2125 | 回復(fù): 8
打印 上一主題 下一主題

宏問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-10-10 20:37 |只看該作者 |倒序?yàn)g覽
以前就有這個(gè)疑問,一直放著。
這次又看到,實(shí)在想不明白;

在定義一個(gè)宏操作時(shí):

#define dosmething \
do {\
  操作\
}\
while(0)

為什么要加上一個(gè)do{} while(0)?????

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-10-10 21:54 |只看該作者
??????????????又自己沙發(fā)!

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-10-10 22:10 |只看該作者
這樣做的主要目的是讓這個(gè)define可以像一條語(yǔ)句那樣使用,例如
if (...)
  something;
如果不加do {}while (0),就需要寫成
if (...)
{
  something;
}

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-10-10 22:13 |只看該作者
原帖由 融化的冰山 于 2007-10-10 22:10 發(fā)表
這樣做的主要目的是讓這個(gè)define可以像一條語(yǔ)句那樣使用,例如
if (...)
  something;
如果不加do {}while (0),就需要寫成
if (...)
{
  something;
}



...............,不對(duì)味。。。。。。!

不置可否!

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-10-10 22:23 |只看該作者
就是執(zhí)行一次的意思哦。因?yàn)橛?{},所以里面可以定義一些局部變量。其實(shí)直接用 {} 就可以了,沒必要 do while

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-10-10 22:57 |只看該作者
原帖由 mmmixx 于 2007-10-10 22:23 發(fā)表
就是執(zhí)行一次的意思哦。因?yàn)橛?{},所以里面可以定義一些局部變量。其實(shí)直接用 {} 就可以了,沒必要 do while

不知道是那本書上說了do ... while(0)是為了防止錯(cuò)誤的if匹配,讓大家覺得它只有這么一個(gè)用法了,其實(shí)它還可以在宏里面加break。
例如

  1. #define T(x) do \
  2. { \
  3. 操作 \
  4. if (x) \
  5.     break; \
  6. 操作 \
  7. } while(0)

復(fù)制代碼

當(dāng)然你還可以用其它寫法代替,但它確實(shí)提供了這么一個(gè)功能

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2007-10-10 23:04 |只看該作者
防止錯(cuò)誤的if匹配防止的是什么樣一種情況呢?

加break這個(gè)功能不錯(cuò),挺方便的。

論壇徽章:
1
摩羯座
日期:2013-10-23 12:41:02
8 [報(bào)告]
發(fā)表于 2007-10-11 13:36 |只看該作者
這個(gè)問題《Linux場(chǎng)景模式》里面介紹了

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2007-10-11 14:15 |只看該作者
原帖由 dj_ukyo 于 2007-10-11 13:36 發(fā)表
這個(gè)問題《Linux場(chǎng)景模式》里面介紹了


手頭沒書,大俠們?cè)敿?xì)舉例說明一下!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP