复杂的类型使用引用,可以减少拷贝而提高性能;
如果不希望引用被修改则带上const标志。
但是对于简单类型,如果是处于性能原因而使用引用,
那肯定是弄巧成拙的。因为使用引用之后,多了一些额外的索引标志,
这些的带来的消耗在时间和空间上都比不用引用要多一些。
使用gcc -S x.cpp -o x.s得到下列的代码的汇编的大小
int add(int a, int b) {
return a + b;
}
963Bytes
int add(const int &a, const int &b) {
return a + b;
}
1047Bytes
int add(const int a, const int b) {
return a + b;
}
963Bytes
汇编的具体内容就不深入了。光看这个size就知道什么写法是比较靠谱的了。
对于基本类型不使用引用,还有一个原因,看以下代码
int a = fun1();
int b = a + 1;
fun2(b);
or
int a = fun1();
fun2(a + 1);
fun2(***)如果是使用引用参数的话就会报错,因为a + 1是一个表达式,不是一个变量。
本文探讨了在编程中使用引用与基本类型时的性能差异,并通过代码示例展示了不同写法对汇编大小的影响。同时指出,对于基本类型,避免使用引用以防止不必要的性能损耗。
3362

被折叠的 条评论
为什么被折叠?



