`

for(;;)和while(1)对比

 
阅读更多

转自http://bbs.csdn.net/topics/310037252

 

一直知道for(;;)和while(true)都是无限循环,今天搜了下原理

while VS. for 
  在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?让我们看看它们编译后的代码:
    编译前              编译后 
    while (1);         mov eax,1  
                                              test eax,eax 
                                               je foo+23h
                                               jmp foo+18h


        编译前              编译后 
    for (;;);          jmp foo+23h   
    一目了然,for (;;)指令少,不占用寄存器,而且没有判断跳转,比while (1)好。 

分享到:
评论

相关推荐

    foreach、while、for性能比较

    根据不同的场景和需求,开发者可以选择使用`foreach`、`while`或`for`等不同类型的循环。本文将深入探讨这三种循环在PHP中的性能表现,并通过一个具体的测试案例来分析它们之间的差异。 #### 测试环境 本次测试...

    C#中foreach循环对比for循环的优势和劣势

    循环语句为众多程序员们提供了很大的便利,有while、do…while、for和 foreach。而且foreach语句很简洁,但是它的优点不仅仅在于此,它的效率也是最高的。本文将详细给大家关于C#中foreach循环对比for循环的优势和...

    dowhile语句 for语句 循环结构的嵌套PPT学习教案.pptx

    例如,可以完全省略表达式1和3,或者用空语句(;)来替代循环体,如以下示例所示: ```c main() { int i = 1, sum = 0; for (; i ; ) { sum = sum + i++; } printf("sum=%d\n", sum); } ``` 甚至,当所有三个...

    巧妙使用do……while

    #### 四、对比分析 - **原始版本**:原始版本中的`do...while`循环虽然保证了循环体至少执行一次,但在实际应用场景中,由于`while(0)`的存在,实际上只会执行一次。同时,这种结构容易导致内存泄漏的问题。 - **...

    C语言While语句[借鉴].pdf

    在第3.1和3.2两个代码段中,可以看到这种差异。第3.1使用`do_while`,先执行循环体再检查条件,确保至少执行一次;而第3.2使用`while`,先检查条件再执行,如果初始条件就不满足,则不会执行循环体。 此外,实验还...

    3for循环语句—高校教师资格证教案.docx

    在教学过程中,可以通过实例演示和编程练习,让学生熟悉for循环的使用,并与while和do...while循环进行对比,加深理解。课后习题如P133的例5.8和P140的3-4题可以帮助学生巩固所学知识。同时,强调实践操作的重要性,...

    c#入门之循环语句使用详解(for循环、do/while)

    本篇文章将深入探讨两种常见的循环语句——for循环和do/while循环。 首先,我们来了解一下do/while循环。do/while循环的特点在于它会先执行循环体至少一次,然后才检查条件。如果条件满足,循环会继续执行;如果...

    课件003Dowhile循环Dowhile循环共4页.pd

    `Dowhile`循环也可以与其他循环结构(如`for`、`while`)嵌套使用,以实现更复杂的逻辑。在嵌套循环中,内层循环会完全包含在外层循环之内,每次外层循环迭代时,内层循环都会从头开始执行。 总之,`Dowhile`循环是...

    Labview应用技术 程序结构(WHILE循环结构)(教案).doc

    4. **小结**:通过对比,讲解FOR循环与WHILE循环的适用场景和差异,例如,FOR适合计数型循环,而WHILE适合基于条件的循环。 ### 5. 课堂总结 通过本次教学,学生应能掌握WHILE循环的基本使用,理解输入和输出隧道...

    C++,java,Go等语言性能对比

    - **Scala**:Scala 中的循环结构也包括 `for` 和 `while`,但 Scala 强调函数式编程风格,因此提供了一种更为强大的 `for` 表达式,可以使用模式匹配和其他高级特性来迭代集合。 ##### 3. **内存与对象分配** - *...

    delphi for循环的从小到大 to和从大到小downto的对比

    本文将详细讨论这两种循环方式,并通过实例进行对比,帮助你更好地理解和掌握它们的用法。 1. **从零到N的`to`循环** `to`关键字用于创建一个递增的循环,通常从0开始,到指定的数值结束。这种类型的循环适用于...

    使用OpenCV实现实时图像对比

    在计算机视觉领域,OpenCV(开源计算机视觉库)是一个强大的工具,它提供了丰富的函数和算法,用于处理图像和视频数据。本教程将详细介绍如何利用OpenCV实现实时图像对比,这个功能在许多应用场景中都非常实用,例如...

    When--while--as的区别和用法.doc

    同样,它们可以接现在分词、介词短语或形容词构成省略句,如"When [While] reading, he fell asleep."或"When [While] in trouble, ask her for help." 最后,As和When在表示动作的同时发生或持续时,可以与进行...

    java代码-日常练习15,while;dowhile,for的比较 水仙花数求和

    在本练习中,我们将使用三种循环结构:`while`、`do...while`和`for`来实现水仙花数的求和。 首先,让我们逐一了解这三种循环结构: 1. **while循环**: while循环是最基本的循环结构,它在满足特定条件时执行...

    MATLAB语言for的使用

    5. **与while循环对比**:`for`循环适用于已知迭代次数的情况,而`while`循环适用于未知循环次数,但满足特定条件时退出的情况。 理解并熟练掌握`for`循环在MATLAB中的运用,对于编写高效、简洁的MATLAB代码至关...

    对比,对比是修辞手法吗,matlab源码.zip

    在分析或修改MATLAB源码时,理解变量类型、控制流语句(如if-else、for、while循环)以及函数调用至关重要。此外,MATLAB还支持面向对象编程,可以创建类和对象,进一步增强代码的复用性和模块化。 在压缩包内的...

    Java之for循环-学习笔记.docx

    **二、While循环与For循环的对比** - **循环类型**: - **While循环**:它的循环次数在开始时通常是未知的,依赖于循环条件是否满足。 - **For循环**:在开始时就明确了循环次数,或者有明确的结束条件。 - **...

    c#与vb对比图

    - C#有`for`、`foreach`、`while`等,如`for (int i = 0; i ; i++) {...}` - VB提供`For...Next`、`Do...Loop`,如`For i As Integer = 0 To 9 Step 1 : ... : Next i` 5. **数组声明**: - C#:`int[] arr = ...

    Linux Shell语法速查表 用C语言语法来作对比

    为了帮助大家更好地理解和记忆Shell脚本中的常用语法,本文将基于提供的文件信息,通过与C语言的语法对比,详细介绍Linux Shell脚本编程的基础知识。 #### 参数传递 - **C语言**: 使用标准函数`main()`接收命令行...

    循环结构程序设计:三种循环语句.doc

    本文将详细讨论三种主要的循环语句:while、do-while 和 for。 首先,循环构造(Iteration Structure)是为了应对那些需要重复执行的任务。在编程中,我们使用循环语句(Loop Statement)来实现这一目标。循环语句...

Global site tag (gtag.js) - Google Analytics