编译时哪个更有效?

2 c performance assembly gcc

我知道现在的计算机速度相当快,而且效率低下调整,比如我要问的问题,并没有那么重要,但我认为这仍然很好.


    int something;
    something = 5;

要么


    int something = 5;

如果编译器以不同的方式编译两段代码,则上述两段代码中的哪一段更有效.它可能因编译器而异,但我主要对gcc感兴趣.

Meh*_*dad 13

在这些日子里,当你启用优化时,你(几乎)无法预测生成代码的任何内容.信不信由你,你的代码描述的是目的,而不是手段!所以预测它将如何执行没有多大意义,特别是在优化之后 - 所有C保证都会给你你要求的结果.

在优化之前,担心它是没有意义的.
并且您的代码对于编译器进行优化是微不足道的,所以不要担心它.

开始考虑程序中更重要的事情.:)

  • 我觉得这个答案有点像抄袭.虽然通常是正确的,但*是*实例,其中代码可能引入可能阻止某些优化被应用的约束.在这里的问题中,情况并非如此,但我不认为我们应该简单地用以下答案解答问题:"别担心,编译器会修复你的代码." (2认同)
  • 用于"描述目的而非手段"的+1 (2认同)

Cod*_*ger 5

即使关闭优化,它也会生成相同的代码.声明变量是为了编译器的利益; 它不直接生成代码.