C++ 什么';s链式赋值的性能含义
我有2个C++ 什么';s链式赋值的性能含义,c++,c,C++,C,我有2个Reset()函数。与[1]相比,[2]是否有任何性能影响 [1] [2] 一如往常,当事情重要时,你应该以经验来检验它们,而不是仅仅依靠理论推理 然而,在本例中,我可以想象这两个代码片段在编译后变得相同,因此没有区别 。。。至少在典型案例中是这样。例如,如果变量的类型具有 给它赋值是便宜的 从该类型的另一个实例复制是昂贵的 然后,除非优化器足够聪明,否则您可能会认为链式分配要昂贵得多 (反之,如果赋值一个整数很昂贵,但复制赋值很便宜)几乎可以肯定没有区别,因为编译器是半正常的。但最
Reset()
函数。与[1]相比,[2]是否有任何性能影响
[1]
[2]
一如往常,当事情重要时,你应该以经验来检验它们,而不是仅仅依靠理论推理 然而,在本例中,我可以想象这两个代码片段在编译后变得相同,因此没有区别 。。。至少在典型案例中是这样。例如,如果变量的类型具有
- 给它赋值是便宜的
- 从该类型的另一个实例复制是昂贵的
(反之,如果赋值一个整数很昂贵,但复制赋值很便宜)几乎可以肯定没有区别,因为编译器是半正常的。但最终这取决于很多事情。什么类型、什么硬件等@Kenny Lim编译器可以为这两个函数生成相同的目标代码。:@Kenny Lim首先测量,然后询问可疑的东西!
void Reset(){
_a = 0;
_b = 0;
_c = 0;
_d = 0;
}
void Reset(){
_a = _b = _c = _d = 0;
}