我认为,即使函数实际上没有返回任何内容,最好返回一个整数.返回的值可用于反映函数内的各种错误条件.我们通过在C++中选择整数返回函数而不是"void"函数来支付任何代价吗?
您将需要从每个函数返回值的计算开销.但是一个好的优化器可能会删除多余的返回值.
这是个坏主意,因为它会使你的代码不可读.但另一个原因是一个坏主意:它为未定义的行为创造了另一种可能性进入程序的可能性.除此之外main,所有标记的功能int 必须int在所有控制路径上返回.
为什么不使用异常机制; 这是惯用的方式吗?
如果你有一个设计策略,每个函数都应该返回一个代码来告诉你它是否成功,那么更改void函数以返回这样的值是有意义的.您最终通过引用传递输出参数而不是返回值,并且您获得的代码看起来不像惯用的C++.但是,如果它只是功能,否则什么都不返回,它只是一个任意的变化,会让人迷惑不解.
如果某个函数无法执行它应该执行的操作,则应抛出异常.