【问题标题】:Is it expensive to pass structs like CATransform3D by value?按值传递像 CATransform3D 这样的结构是否昂贵?
【发布时间】:2014-06-30 03:54:48
【问题描述】:

在 Cocoa 或 Cocoa Touch 中,结构总是(或者几乎总是?)按值传递,即使是像 CGAffineTransform 这样不那么小的结构,甚至像 CATransform3D 这样更大的结构。

只是……为什么?想要确保原始变量没有改变?还是有其他原因?

通过 const 指针或 const 引用传递大型结构会更好(比如我可以确保值不会被更改)?

【问题讨论】:

    标签: objective-c pass-by-reference objective-c++ pass-by-value


    【解决方案1】:

    显然,如果这是你想做的,你可以做到;但第一条规则是不要过早优化。如果你能证明你有一个传递指针会缓解的问题,那么很好,然后优化;但我打赌你没有任何这样的问题。还是想想别的吧。

    【讨论】:

    • 顺便说一句,结构体是按值传递的,这是 C 的语言特性,而不是 Cocoa 框架的约定。
    猜你喜欢
    • 2015-03-12
    • 2011-01-07
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多