看板 C_and_CPP 關於我們 聯絡資訊
藉由這一篇來請問一個相關的問題 在linux kernel的程式中,有時後會見到以下的寫法 do { code... }while(0); 從字面上來看,就是只作一次 感覺就沒必要加do {}while(0)了 有人知道這種寫法的特殊用意嗎?? ※ 引述《scrush (阿慶)》之銘言: : 不好意思,我一直對while(1)這邊有點不理解,爬文也沒看到我想要的答案才發文, : 我常常看到一些 code在程式最底端加上個 while(1){}; 或是while(1){} : 請問這是要做什麼用的?有加 ; 跟沒加 ; 有何分別?目的只是讓這段code一直執行嗎? : 如果是的話為何不必直接寫 while(1){code} ,用while(1)把程式幫起來不就得了嗎? : 還是說目的不同? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.200.203.164
fragileness:http://mkseo.pe.kr/blog/?p=28 06/27 10:25
winest:macro方便 06/27 10:29
cloudlim:原來如此 06/27 11:24
justdemon:這種寫法 為什麼不單純用大括號包起來就好? 06/27 11:54
cloudlim:我一開始也這樣想XD 一樓連結裡有說明 06/27 12:06
tinlans:我對這種理由其實一直很反感,他可以直接在外面包一個 {} 06/27 12:39
tinlans:,這樣就算 expand 成 if(expr) { { }; } else ... 06/27 12:40
tinlans:也還是好好的。 06/27 12:41
tinlans:所以比較高明的 team 都會要求寫 if 乖乖加 { } 包起來, 06/27 12:42
tinlans:而不會搞這種頭痛醫頭腳痛醫腳的方法。 06/27 12:42
tinlans:某些語言甚至強迫你只能用 { },所以能習慣的人也多。 06/27 12:46
dustlike:也是因為可以用break的緣故吧? 06/28 14:02