C/C++ : is GOTO faster than WHILE and FOR?

标签 c performance loops goto

我知道,每个人都讨厌 GOTO,也没有人推荐它。但这不是重点。我只想知道,哪个代码最快:

  1. goto 循环

    int i=3;
    loop:
    printf("something");
    if(--i) goto loop;
    
  2. while 循环

    int i=3;
    while(i--) {
        printf("something");
    }
    
  3. for 循环

    for(int i=3; i; i--) {
        printf("something");
    }
    

最佳答案

一般来说,forwhile 循环被编译为与goto 相同的东西,因此通常不会有什么不同。如果您有疑问,您可以随意尝试所有这三个,看看哪个需要更长的时间。很可能您将无法衡量差异,即使您循环十亿次也是如此。

如果你看this answer ,您会看到编译器可以为 forwhilegoto 生成完全相同的代码(只是在这种情况下没有条件)。

关于C/C++ : is GOTO faster than WHILE and FOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366929/

相关文章:

c - C中puts函数的返回值

c - 与 clang 相比,gcc 的具有一定字节数的 __builtin_memcpy 性能很糟糕

c# - 六边形顶点的向量方向

使用 mmap 将整个文件复制到内存中

C套接字从接受返回的文件描述符中获取IP地址

c 警告 - 从不兼容的指针类型传递 ‘insert’ 的参数 1

ios - 重用时 NSMutableArray removeAllObjects 与 new

mysql全文精确短语慢

java - 如何在同一个查询中同时将两个Arraylist值插入到数据库表中

java - 水平添加多个列表