在 Ada 中将记录作为函数参数传递时避免复制对象
Avoid copying objects when passing records as function parameters in Ada
将 in record
传递给 Ada 中的函数或过程时,它是按值传递的。
然后我是否应该将大记录作为 access constant
传递以避免复制(就像您在 C++ 中所做的那样)?
Ada 编译器通常能够自动优化该副本吗?
没有!编译器可以自由选择by-copy或by-reference。见 Language Reference Manual
没有!
可以这么说。编译器可以自由选择它认为最好的,根据我的经验,编译器 "know" 如何生成代码比几乎所有软件开发人员都好。
将 in record
传递给 Ada 中的函数或过程时,它是按值传递的。
然后我是否应该将大记录作为 access constant
传递以避免复制(就像您在 C++ 中所做的那样)?
Ada 编译器通常能够自动优化该副本吗?
没有!编译器可以自由选择by-copy或by-reference。见 Language Reference Manual
没有!
可以这么说。编译器可以自由选择它认为最好的,根据我的经验,编译器 "know" 如何生成代码比几乎所有软件开发人员都好。