Re: [問題] while(1)的新手疑問

看板C_and_CPP作者 (加油~~~)時間15年前 (2010/06/27 10:21), 編輯推噓5(507)
留言12則, 6人參與, 最新討論串2/6 (看更多)
藉由這一篇來請問一個相關的問題 在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

06/27 10:25, , 1F

06/27 10:29, , 2F
macro方便
06/27 10:29, 2F

06/27 11:24, , 3F
原來如此
06/27 11:24, 3F

06/27 11:54, , 4F
這種寫法 為什麼不單純用大括號包起來就好?
06/27 11:54, 4F

06/27 12:06, , 5F
我一開始也這樣想XD 一樓連結裡有說明
06/27 12:06, 5F

06/27 12:39, , 6F
我對這種理由其實一直很反感,他可以直接在外面包一個 {}
06/27 12:39, 6F

06/27 12:40, , 7F
,這樣就算 expand 成 if(expr) { { }; } else ...
06/27 12:40, 7F

06/27 12:41, , 8F
也還是好好的。
06/27 12:41, 8F

06/27 12:42, , 9F
所以比較高明的 team 都會要求寫 if 乖乖加 { } 包起來,
06/27 12:42, 9F

06/27 12:42, , 10F
而不會搞這種頭痛醫頭腳痛醫腳的方法。
06/27 12:42, 10F

06/27 12:46, , 11F
某些語言甚至強迫你只能用 { },所以能習慣的人也多。
06/27 12:46, 11F

06/28 14:02, , 12F
也是因為可以用break的緣故吧?
06/28 14:02, 12F
文章代碼(AID): #1C9hMqYD (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1C9hMqYD (C_and_CPP)