为了账号安全,请及时绑定邮箱和手机立即绑定

请问return 0存在与否有什么意义?

我把所有return 0都删掉了,任然是对的,并且删除其中任何一个都没问题

#include <stdio.h>


int Xuexi()

{

    printf("小明在慕课网上学习\n");


}


int Yixue(int n)

{

    printf("小明在慕课网上学习了%d门课程",n);

    

}


int main()

{

    Xuexi();

    Yixue(0);

   

}


正在回答

1 回答

在main函数中,return 0 指的是程序的执行状态。在实际的编译器当中,对于main中不写return 0,不同的编译器有不同的应对。有的在编译的时候会自动添加(比如Dev C++),有些不会给你添加,而选择在编译的时候直接报错(如苹果的Xcode)。你甚至可以把main函数的返回值改成void(根据编译器不同,有的自动添加,有的报错)。只能说在c的main中,return 0 多数情况下误伤大雅,但是保留return 0 是一个好习惯。

至于函数的返回值:函数会将返回值保留在eax寄存器当中。如果某一个函数没有return,则eax中可能是之前传入参数的值,也可能是上一次return的值(给函数传递参数时,如果传入的时变量参数,则会存放到eax,如果只是直接的数字,则不会用到寄存器)。也就是说,虽然没有return,(编译器为了效率,不会做有返回值的函数中有没有写return的检查,因此能够编译通过),但是程序仍然会返回一个寄存在eax中的数值,只不过返回什么值就不一定了。

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       920170    人
  • 解答问题       20634    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

请问return 0存在与否有什么意义?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信