ideone.com上提供的示例:
int passByConstPointerConst(MyStruct const * const myStruct)
int passByValueConst (MyStruct const myStruct)
您是否希望编译器优化上面的两个函数,使得它们都不会真正复制传递的 MyStruct 的内容?
我确实了解许多优化问题特定于单个编译器和优化设置,但我不能为单个编译器进行设计。相反,我想对是否需要传递指针以避免复制有一个普遍的期望。似乎使用const
并允许编译器处理优化(在我配置它之后)应该是一个更好的选择,并且会产生更清晰和更不容易出错的代码。
在ideone.com的示例中,编译器显然仍在将数据复制到新位置。