- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我问这个问题只是为了了解知识(因为我认为这与我这样的初学者无关)。
我读到 C 程序员更喜欢
for(; ;) {....}
结束
while(1) {....}
为了效率的原因无限循环。一种形式的循环确实比另一种更有效,还是仅仅是风格问题?
最佳答案
两种结构在行为上是等价的。
关于偏好:
C 编程语言,Kernighan & Ritchie,
使用表格
for (;;)
无限循环。
编程实践,Kernighan & Pike,
也喜欢
for (;;)
"For a infinite loop, we prefer for(;;) but while(1) is also popular. Don't use anything other than these forms."
PC-Lint
也喜欢
对于 (;;)
:
716 while(1) ... -- A construct of the form while(1) ... was found. Whereas this represents a constant in a context expecting a Boolean, it may reflect a programming policy whereby infinite loops are prefixed with this construct. Hence it is given a separate number and has been placed in the informational category. The more conventional form of infinite loop prefix is for(;;)
历史上 for (;;)
优于 while (1)
的理由之一(也许不是最重要的,我不知道)是一些旧的编译器会为 while (1)
构造生成测试。
另一个原因是:for(;;)
是最短的形式(字符数)并且 for(;;)
不包含任何魔数(Magic Number) (正如 OP 问题评论中的 @KerrekSB 所指出的那样)。
关于c - "for(; ;)"优先于 "while(1)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394671/
在我正在处理的应用程序上,onCreate 使用 startService() 启动一个服务,随后,该 Activity 在其 onStart 中调用 bindService(到同一服务)。问题是服务
这个问题已经有答案了: Problem joining tables where joined table needs to be ordered before grouping (2 个回答) 已关
上下文(虽然不重要),在 netfilter 模块中,我们使用如下结构: struct data { char mac[ETH_ALEN]; char in6_addr addr; }
Google Chrome 的页面性能审核建议将 CSS 导入放在 header 中的 JS 导入之前,以允许并行下载 CSS 和 JS 文件。 但是,我注意到这会导致 Firefox 在导航到另一个
这个问题已经有答案了: Results of printf() and system() are in the wrong order when output is redirected to a f
这个问题已经有答案了: Results of printf() and system() are in the wrong order when output is redirected to a f
我想获得按 project_id 排序的独特帖子基本上,如果有重复的帖子,我想要其中 project_id 的帖子不为空。 有什么办法可以得到这个吗? 此代码返回唯一的帖子,但它们不是按 projec
我是一名优秀的程序员,十分优秀!