1
8
这是无效的。你不能 返回 对局部变量的引用。
不太确定GCC,但结果可能是一样的。 |
2
8
假设引用是像指针一样(在内部)实现的,当值的大小大于指针的大小时(假设传递引用是合法的:对超出范围的局部变量的引用是不合法的),我希望通过传递引用比传递值获得更好的性能。 |
3
5
这里的const引用不正确-您正在返回一个对局部变量的引用-这里也是一个未命名的temporary
返回对大型结构化类型的常量引用,当引用在函数退出后仍然有效时,您希望避免复制到该类型。通常,这意味着返回对参数或成员变量的引用(在类的情况下)。 |
4
3
通过const引用返回有效的唯一情况是,如果要返回的对象将比函数调用的时间长*(例如返回调用函数的类的成员),即使在这种情况下,是否应该这样做也是可疑的,因为这将允许两个不同的调用者访问同一个内存位置,如果使用多个线程,这将使问题成为一场噩梦。 *注意:在您的情况下,您返回的项是一个局部变量,因此不会超过函数调用。因此,您提供的代码正在调用邪恶的未定义行为。 |
5
1
可能,但我永远不会那样做。为什么? 因为这是编写代码的好方法 不可读的 . 另外,
另外,
你的程序中没有其他“瓶颈”需要优化吗?
所以,我不会认真对待这件事,欢迎大家来挑战我。 |