c - 对于循环优化?如果如果与如果如果如果

标签 c for-loop

在编码时,我只是好奇两个代码之间的性能是否存在差异。

for(int i=0;i<10;i++){
   if(i>-1)
      printf("Bigger! than -1");
   if(i>5)
      printf("Bigger! than 5");
}

vs

for(int i=0;i<10;i++)
   if(i>-1)
      printf("Bigger! than -1");
for(int i=0;i<10;i++)
   if(i>5)
      printf("Bigger! than 5");


是否存在任何性能差异?如果存在,造成这些差异的因素是什么?

最佳答案

没有足够的声誉来发表评论,因此将此写为答案。

@Carcigenicate 由于两个程序的输出不同,因此它们肯定不会优化为相同的机器代码。

我怀疑第二个版本速度较慢,因为对索引变量的内存的“写入”访问次数是其两倍(以及更多的“读取”访问次数)。

关于c - 对于循环优化?如果如果与如果如果如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55654663/

相关文章:

javascript - 循环内循环出现问题

variables - 在 SSIS 的 For 循环容器中的 EvalExpression 中使用具有 boolean 数据类型的变量

javascript - 如何用for循环填充数组?

c - 将字符串与指针数组分开

c - 在 C 中实现 imagesc

c# - 在模块之间转换枚举

javascript - 从 JSON 获取最大值(value)并显示相关数据 (API/Javascript)

c++ - 迭代引用?

c - 1[&array] 是 &array[sizeof(array)/sizeof(array[0])] 的合适替代品还是太混淆了?

c++ - 无法理解线路的工作原理