gpt4 book ai didi

c++ - 堆栈(重新)创建时的性能差异?

转载 作者:行者123 更新时间:2023-11-28 08:15:24 25 4
gpt4 key购买 nike

这之间有性能差异吗:

int test;
void Update()
{
test +=2;
}

还有这个:

void Update()
{
int test;
test +=2;
}

--

int main()
{
while(true)
Update();
}

我问是因为第二个代码更好读(你不需要在类头声明它),所以如果性能不低我会使用它。

最佳答案

这两个代码片段之间不太可能存在性能差异,只有分析您的代码才能可靠地告诉您,但您应该在此处考虑一个重要的功能差异。

如果您的 test 变量仅在函数 update() 内部需要,那么您必须在函数内部声明它。这样,变量在函数内的作用域就有限了。这种局部变量的生命周期仅限于它所在的作用域。即在函数体内,直到右大括号}

如果您完全希望您的 test 变量在函数调用之间保持状态,那么它可以是在函数内部声明的局部静态变量。

在函数外声明test 使其成为全局变量。并且它可以在同一文件中的任何函数中访问。它也是一个全局变量,它的生命周期一直延伸到程序结束。

关于c++ - 堆栈(重新)创建时的性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com