gpt4 book ai didi

c++ - 更快地重用在公共(public)范围内定义的变量或在每个内部范围内重新定义它?

转载 作者:行者123 更新时间:2023-11-30 00:41:20 25 4
gpt4 key购买 nike

特别是 C++,如果它重要的话,但我想答案在于不知何故的汇编代码。

如果我们在一个公共(public)作用域中有多个 block (比如一个函数),每个 block 都使用相同类型的变量,那么在公共(public)作用域中定义变量并在每个 block 中重新初始化它更快,还是重新定义并初始化更快它在每个 block 中(或者没有根本区别)?

例子:



int i;

{// block 1
我 = SomeFunction();
...
}

{// block 2
我 = SomeOtherFunction();
...
}

相对



{// block  1
int i = SomeFunction();
...
}

{// block 2
int i = SomeOtherFunction();
...
}

最佳答案

如果 i 是 POD 类型(如示例中所示的 int),几乎可以肯定没有任何区别。

如果 i 是某种类型,它有一个非平凡的构造函数或一个做一些令人兴奋的事情的赋值运算符,那么可能会有很大的不同,你必须比较合适的构造函数和赋值运营商做的。如果输入了两个 block ,那么您还需要考虑析构函数。

一般来说,您不必担心。采取更简洁的方法并在尽可能最受限的范围内声明变量,尽可能接近它的首次使用,并且只有当你的分析器告诉你它是一个性能问题点时才重构它。

关于c++ - 更快地重用在公共(public)范围内定义的变量或在每个内部范围内重新定义它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878553/

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