如果您应该从Main返回0,而Exit_Success是"定义的实现",它的字面意思是it is not required to be 0,那么如果您不能相信它是正确的值,那么它还有什么意义呢?我是不是遗漏了什么?

推荐答案

main返回整数n(如果main的返回值为int)相当于在标准中调用Exit(N)--5.1.2.2.3.1.exit的定义使得exit(0)exit(EXIT_SUCCESS)都是状态成功终止的实现定义形式--标准中的7.20.4.3.5.

因此,返回0(或没有返回并丢弃Main的末尾)会导致程序"成功"终止.

我不认为标准保证return EXIT_SUCCESSreturn 0完全等同于从Main返回,但从Main返回return 0绝对是可以的,并期望您的操作系统将其视为程序的成功终止,无论EXIT_SUCCESS被定义为什么.

请注意,像cpparence.com这样的网站并不是关于C标准的最佳信息来源,即使它们大多是准确的--转到实际的标准(或者,如果官方标准是付费的,则至少是免费获得的委员会草案之一)并阅读它所说的,要好得多.

C++相关问答推荐

为什么这个select()会阻止?

如何确保内存分配在地址附近?

仅在给定的大小和对齐方式下正确创建全局

为什么该函数不将参数值保存到数据 struct 中?

如何将常量char*复制到char数组

在我的代码中,我需要在哪里编写输出函数?

为什么中断函数会以这种方式影响数组?

如何计算打印二叉搜索树时每行所需的空间?

我在C程序的Flex/Bison中遇到语法错误

S,在 struct 中创建匿名静态缓冲区的最佳方式是什么?

如何使用空元素块声明指针数组

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

RISC-V GCC编译器错误编译ASM代码

struct 中的qsort,但排序后的 struct 很乱

'printf("%s", user_input)' 危险吗?

如何向 execl 创建的后台程序提供输入?

创建 makefile 来编译位于不同目录中的多个源文件

返回指向函数内声明的复合文字的指针是否安全,还是应该使用 malloc?

当 a 是代码块时使用逗号运算符 (a, b)

计算 e^x 很好.但不是 x 的罪