![]() |
1
2
所有的答案都很好,但是如果你担心性能优化,实际的解析几乎要花掉所有的时间,所以指针别名可能会“在噪音中”。 |
![]() |
2
1
带有临时变量的变量可能更快,因为它并不意味着 每一个 指针的更改将反映回参数,编译器有更好的机会生成更快的代码。然而,正确的测试方法是编译并查看反汇编。 同时,这与避免别名无关。事实上,变体 具有 一个临时变量确实使用了别名—现在您有两个指针指向同一个数组,这正是别名的含义。 |
![]() |
3
1
如果函数可能是事务性的,我将使用临时函数。
即功能完全成功或失败(没有中间立场)。
如果函数过早退出(即通过异常),则有两种情况:
我认为这两种方法都没有任何优化优势。 |
![]() |
4
1
是的,你应该把它分配给你标记的本地人
原因是如果
编译器不能绝对确定作用域中的任何其他内容都指向
通过写作
所以,保证编译器
这不可能发生
-它可以加载
在这里选择指向引用的指针的原因仅仅是可以标记一个指针。
你可以尝试这两种方法,并测量结果看哪个更快。如果你好奇,
I've written in depth on
补遗
:在写了上面的文章之后,我意识到moz的人更担心引用本身被化名——也就是说,其他的东西可能指向同一个地址
|
![]() |
5
1
编译器怎么知道p_in_out不存在别名?它确实无法优化通过引用来回溯数据。
我看着这个,问你为什么不直接返回指针,然后你就没有指针的引用,你也不必担心修改原始指针。
它还意味着可以用rValk调用函数:
|
![]() |
6
0
一个立即想到的想法是:异常安全。如果在解析期间抛出异常,那么应该使用临时变量来提供强异常安全性:要么函数调用完全成功,要么它什么也没做(从用户的角度)。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 3 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |