C ++中void和非void函数的区别

时间:2013-11-22 23:21:26

标签: c++ function memory

我有简单的问题

假设我在C ++中有两个函数:

void DoSomething();

bool DoSomething();

这两个功能之间的内存或速度是否有任何差异?

第二个问题,与第一个问题相关:我认为存在速度差异,因为bool必须返回一些值。但我根本不必使用返回值。那么,将DoSomething()声明为bool对我有好处,以防我以后决定返回某些内容吗?

1 个答案:

答案 0 :(得分:9)

如果你的函数没有理由返回某些东西,它不应该返回任何东西,即它应该返回void。给出一个不产生任何结果的函数是没有意义的。

如果你的函数有理由返回某些东西,例如,因为它可能会失败,它应该返回相应的结果。由于结果有意义,因此不会被忽略,即没有返回值的优化潜力。

当事情变得有趣时,返回大量物体时:发生的潜在复制可能很昂贵,并且在重用内存方面也存在速度优势。但是,这些注意事项不适用于任何内置类型。