![]() |
1
1
如果
因此,您最好使用该函数的第一个版本。 |
![]() |
2
1
从优化的角度来看,制作小型内存对象的本地副本通常也是一个好主意,因为它们可以帮助编译器解决混叠问题。
编译器自然会通过在寄存器中缓存内容来尽可能避免内存访问,但有时编译器很难决定何时使缓存的值无效,因此必须保守地刷新/重新加载。
(其中一些可以通过使用严格的混叠或
写入内存位置也意味着,即使编译器设法使用寄存器来缓存这些写入,它最终也可能会被迫比通过局部变量手动缓存更快地刷新缓存,例如,不透明的函数调用或对具有不清楚混叠的内存的访问将强制这样的刷新。 如果有疑问,请比较程序集输出。 |
![]() |
Community wiki · safe_ptr实现 1 年前 |
![]() |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |