【发布时间】:2014-10-13 05:42:30
【问题描述】:
我不确定来源,但我目前的知识是 C/C++ 函数的局部变量是在函数入口处初始化的。但我也可以读到,尽可能接近其使用的声明变量将有助于编译器优化代码。我对这两个相互矛盾的论点感到很困惑。
ps。 我问的是机器如何处理代码,而不是人类。
编辑: 为了澄清我的问题,如果函数的所有局部变量都在函数入口处初始化,那么在函数体中间声明变量除了更好的可读性之外没有其他好处。但是,我也读过声明接近其使用的变量有助于编译器进行优化。我很难理解这两个相互矛盾的论点是如何结合在一起的。任何解释都会有所帮助。
【问题讨论】:
-
在 C++ 中,局部变量在声明时被初始化。无论进行任何优化,通常都希望在最接近首次使用时声明它们,没有理由在不使用之前声明它们。
-
试着引用你的资料。此外,C/C++ 不是一种语言。
-
@Jonathon C/C++ = C 和/或 C++。如果关于我的问题,两种语言之间有任何显着差异,那么任何答案都可以解释。
-
@CaptainOblivious 当然只有当他们确实有一个初始化器(或构造器)时
标签: c++ c optimization compiler-optimization