为什么使用int函数而不是void?

Kev*_*vin 2 c++

我正在查看一些示例函数和方法(我目前在C++类中),我注意到有一些函数,而不是无效,它们就像是

int myFunction() {
   // ...;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

省略号显然是其他一些陈述.为什么他们归零?每次运行函数时返回特定值有什么意义?

我知道main()必须是int(至少根据标准),因为它与退出代码相关(或者是?),因此可以与操作系统一起使用.但是,我想不出非主要功能会这样做的原因.

是否有任何特殊原因可能有人想要这样做,而不是简单地创建一个void函数?

Lig*_*ica 8

如果这真的是他们正在做的事情,0无论函数做什么都会返回,那么它完全没有意义,他们不应该这样做.

在C世界中,int返回类型是一种约定,因此您可以返回自己的"错误代码",但不仅这不是惯用的C++,而且如果您的程序员总是返回0,那么它完全是愚蠢的.

特别:

我知道main()必须是int(至少根据标准),因为它与退出代码相关(或者是?),因此可以与操作系统一起使用.但是,我想不出非主要功能会这样做的原因.

我同意.


Kei*_*son 7

有一个常见的int函数约定,0表示成功,0表示失败的非零错误代码.

如果int单独查看,则始终返回0 的函数也可能是void函数.但是根据上下文,可能有充分的理由使其与返回有意义结果的其他函数兼容.这可能意味着函数的返回类型如果稍后被修改则不必更改,因此它会检测错误 - 或者如果它被用作回调或模板,它的声明可能需要与其他 - 返回函数兼容论点.int

我建议检查库或程序中的其他类似函数.