1个回答
展开全部
问得很好,我看很多人都觉得没有,你能提出这个问题说明了仔细思考。
return 0,相当于exit(0),相当于exit(EXIT_SUCCESS);
对于你的程序本身没有意义,但是对操作系统有意义。
在stdlib.h里面有定义:
原文:
--------------------------------------------------
/* We define these the same for all machines.
Changes from this to the outside world should be done in `_exit'. */
#define EXIT_FAILURE 1 /* Failing exit status. */
#define EXIT_SUCCESS 0 /* Successful exit status. */
--------------------------------------------------------
翻译,对于所有的机器,这些值都相同。0表示程序正确结束,1表示程序整形失败。
当然此外还有中止等异常情况,只有0表示正常。
如果你不写,对于32-bit的intel系统,返回EAX寄存器的值,这可能给操作系统一个错误的信号。
强烈推荐:写上。
依据标准,main的正确形式是:
int main(...);
int main(int argc, char*argv[]);
应当返回程序状态。这些都只有构造大型系统的时候才能看出是多么关键。
----------------------------------------------------------
应用举例:
对于一个编译器,如果编译生成了一个目标文件、可执行文件,会返回0,否则返回非0值。
当上层应用程序,如Make,NMake等,收到了非0值就不会继续编译。
从而使用户能够处理错误。
return 0,相当于exit(0),相当于exit(EXIT_SUCCESS);
对于你的程序本身没有意义,但是对操作系统有意义。
在stdlib.h里面有定义:
原文:
--------------------------------------------------
/* We define these the same for all machines.
Changes from this to the outside world should be done in `_exit'. */
#define EXIT_FAILURE 1 /* Failing exit status. */
#define EXIT_SUCCESS 0 /* Successful exit status. */
--------------------------------------------------------
翻译,对于所有的机器,这些值都相同。0表示程序正确结束,1表示程序整形失败。
当然此外还有中止等异常情况,只有0表示正常。
如果你不写,对于32-bit的intel系统,返回EAX寄存器的值,这可能给操作系统一个错误的信号。
强烈推荐:写上。
依据标准,main的正确形式是:
int main(...);
int main(int argc, char*argv[]);
应当返回程序状态。这些都只有构造大型系统的时候才能看出是多么关键。
----------------------------------------------------------
应用举例:
对于一个编译器,如果编译生成了一个目标文件、可执行文件,会返回0,否则返回非0值。
当上层应用程序,如Make,NMake等,收到了非0值就不会继续编译。
从而使用户能够处理错误。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询