作者sceneryview (加油~~~)
看板C_and_CPP
标题Re: [问题] while(1)的新手疑问
时间Sun Jun 27 10:21:37 2010
藉由这一篇来请问一个相关的问题
在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
2F:推 winest:macro方便 06/27 10:29
3F:推 cloudlim:原来如此 06/27 11:24
4F:推 justdemon:这种写法 为什麽不单纯用大括号包起来就好? 06/27 11:54
5F:推 cloudlim:我一开始也这样想XD 一楼连结里有说明 06/27 12:06
6F:→ tinlans:我对这种理由其实一直很反感,他可以直接在外面包一个 {} 06/27 12:39
7F:→ tinlans:,这样就算 expand 成 if(expr) { { }; } else ... 06/27 12:40
8F:→ tinlans:也还是好好的。 06/27 12:41
9F:→ tinlans:所以比较高明的 team 都会要求写 if 乖乖加 { } 包起来, 06/27 12:42
10F:→ tinlans:而不会搞这种头痛医头脚痛医脚的方法。 06/27 12:42
11F:→ tinlans:某些语言甚至强迫你只能用 { },所以能习惯的人也多。 06/27 12:46
12F:推 dustlike:也是因为可以用break的缘故吧? 06/28 14:02