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

Difference between void and non-void functions in C++

本文关键字:函数 void 区别 之间 C++      更新时间:2023-10-16

我有一个简单的问题

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

void DoSomething();

bool DoSomething();

这两个函数在内存或速度上有什么区别吗?

第二个问题,与第一个问题有关:我认为存在速度差,因为布尔必须返回一些值。但我根本不需要使用返回值。那么,我将DoSomething()声明为bool是否有好处,以防我决定在将来返回一些东西?

如果您的函数没有理由返回某个东西,那么它不应该返回任何东西,也就是说,它应该返回void。给一个不会产生任何结果的函数一个人为的返回值是没有意义的。

如果函数有返回某些内容的原因,例如,因为它可能失败,那么它应该返回相应的结果。由于结果将是有意义的,所以它不会被忽略,也就是说,没有不返回值的优化潜力。

当返回大量对象时,事情确实变得有趣:潜在的复制可能代价高昂,而且在重用内存方面也有速度优势。然而,这些注意事项不适用于任何内置类型。