C++ C++;?

C++ C++;?,c++,C++,我在阅读示例代码时发现,对于错误消息,他们使用return-1对于他们使用的主函数返回0。但是,当我将主函数返回值替换为return10000时,它仍然构建并运行,没有错误。这是否意味着返回值可以任意选择,对计算机没有意义(不包括将返回值用于某些用户定义的操作的情况)?在为不同情况分配返回值时,通常的惯例是什么?返回值由函数定义指定: ret function(params); 然后,编译器将接受类型为ret的任何值 例如: int main(); 可以返回类型为int(介于-int\u M

我在阅读示例代码时发现,对于错误消息,他们使用
return-1
对于他们使用的主函数
返回0。但是,当我将主函数返回值替换为
return10000时,它仍然构建并运行,没有错误。这是否意味着返回值可以任意选择,对计算机没有意义(不包括将返回值用于某些用户定义的操作的情况)?在为不同情况分配返回值时,通常的惯例是什么?

返回值由函数定义指定:

ret function(params);
然后,编译器将接受类型为
ret
的任何值

例如:

int main();
可以返回类型为
int
(介于
-int\u MAX
+int\u MAX
之间)的任何值。超出此范围的值可以由编译器自动强制转换。但是,非
int
值(例如
return std::vector()
将导致编译器错误


具体来说,对于
main
函数,您可以返回任何值。约定是在未发生错误时返回0,在发生错误时返回任何其他值。错误值可以是正的,也可以是负的。

主函数(应用程序)的返回值可用于其他应用程序,以指示程序的终止方式。传统上,如果程序成功终止且其他整数(
负或正
)表示存在一些问题或其他情况,则使用
0

每个应用程序都有不同的返回值,您可以在它们的手册中找到这些返回值,以了解每个返回值的含义


例如,您可以看到
grep
命令手册(),它指出退出值
0
是指如果选择了一行,
1
表示没有选择任何行,
2
表示在使用
libc
的系统上出现错误,
,程序退出时会发生以下情况:

  • 在退出时注册的
    atexit
    函数按相反顺序调用
  • 所有打开的流都是关闭的,写入任何缓冲输出数据
  • \调用退出
    ,终止程序

  • 仅保留退出状态的低位8位,这将其截断为介于
    0
    255
    之间的值。如何处理退货状态取决于父流程。例如,如果父进程是Bash,则
    0
    127
    之间的值是用户定义的值,而
    128+
    是专门处理的

    按照惯例,main中的返回值0通常会提示操作系统和用户程序已成功执行。其他值可用于表示程序特定的不同错误代码或成功执行的不同路径。你可以自由选择


    对于程序中的其他函数,返回值的解释取决于开发人员。

    可移植的返回值是
    退出成功
    退出失败
    ,以及
    0
    (它返回与
    EXIT\u SUCCESS
    相同的值。这些清单联系人在中定义。任何其他值的含义都是系统特定的。

    main
    的返回值指示操作系统的某些内容。因此
    main
    与其他函数不同。您可以对其他函数执行任何喜欢的操作。可以吗您澄清您只是在询问
    main