不同的while循环(同时vs无限时),哪个更好?

时间:2013-12-28 16:55:40

标签: c performance while-loop infinite-loop do-while

哪些代码更好?

do {
 fread( ... );
 if(!feof(fp)) { ... }
}
while(!feof(fp));

while(1){
  fread( ... );
  if(!feof(fp)) { ... }
  else break;
}

感谢。

3 个答案:

答案 0 :(得分:2)

都不是。你最好将eof测试作为循环条件的一部分(在顶部)。

你可以这样做:

while (!feof(fp)) {
    fread(...);
}

由于fread返回读取的对象数,可以也应该这样做:

while (fread(...) != 0) {
}

答案 1 :(得分:1)

while循环更好,因为do while执行相同的操作,但它正在调用feof()函数两次。

答案 2 :(得分:0)

  

哪个更好?

没有人比另一个更好。这两者之间的唯一区别是第一个迭代至少一次。