Mat*_*ock 1 c++ memory function
我有一个简单的问题
假设我在C++中有两个函数:
void DoSomething();
Run Code Online (Sandbox Code Playgroud)
和
bool DoSomething();
Run Code Online (Sandbox Code Playgroud)
这两个功能之间的内存或速度有什么不同吗?
第二个问题,与第一个问题有关:我认为存在速度差异,因为布尔必须返回一些价值.但我根本不必使用返回值.那么,将DoSomething()声明为bool对我有好处,以防万一我决定将来还给某些东西?
如果你的函数没有理由返回某些东西,它不应该返回任何东西,即它应该返回void.给出一个不产生任何结果的函数是没有意义的人为回报值.
如果你的函数有理由返回一些东西,例如,因为它可能会失败,它应该返回相应的结果.由于结果是有意义的,因此不会被忽略,即没有返回值的优化潜力.
事情变得有趣的地方在于返回大量物体时:发生的潜在复制可能很昂贵,并且在重用内存方面也存在速度优势.但是,这些注意事项不适用于任何内置类型.