return从字面上理解为"返回"
实际上它确实是返回一个值,
return 0即:返回一个数值是0,
return 返回程序本身,即不需要返回值,
它用于控制流程,
即给你安排工作之后,你总要有个回复一样,
做完了,没做完,都是正确的,
它的意义在于回答本身,而不在于工作完成的情况如何
个人理解,没有参考,
如果误导你请原谅,
如果有所帮助也不必客气
return; 代表 结束函数调用
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
如果函数的返回类型不是VOID一定要用到return语句, 这时return语句不返回数据 因此return后面 不需要 跟参数
比如这个函数int ReadDat(void)
他有个 return 0调用他时if(ReadDat())
所以返回0,1只是为了判断,可能他只有两种情况返回0,1没有什么实际意义,只是为了让IF判断他是属于哪种情况
要了解return的真正意义,首先要知道函数调用的原理。我不知道你对PC指针寄存器,状态寄存器和运行时堆栈有多少了解,以下说明基于假设你了解这些术语的基础上。
1. 程序装载如内存,开始执行,CPU的PC指针寄存器指向程序的主入口第一句执行代码。
2. 程序从主入口开始执行,并创建运行时堆栈。
3. CPU将PC指针递增使得程序顺序执行,CPU根据语句执行的结果修改状态寄存器。
4. 当出现函数调用时,将当前的PC指针寄存器的值以及状态寄存器的值压入堆栈,然后将PC指针寄存器的值修改为即将被调用的函数的第一句执行代码。
5. 程序开始执行被调用函数的代码,CPU将PC指针递增使得程序顺序执行,CPU根据语句执行的结果修改状态寄存器。
6. 当遇到return语句或函数自然结束时,CPU将之前压入堆栈的PC指针寄存器和状态寄存器的值弹出,并写回到相应的寄存器中。
7. CPU开始继续执行主函数后续的代码。
下面对以上流程做一下解释
PC指针寄存器中存储的是一个内存地址,该地址中存储着当前正在执行的代码。通过修改这个寄存器的值可以达到跳转到其代码的效果。函数调用和if,switch,for等分支循环语句都是通过操纵PC寄存器来实现的,但函数调用与分支循环的差别在于,函数调用结束后需要返回到上一层函数的执行现场,继续往下运行,这就需要在修改PC指针前将当前的PC指针保存好,一边函数返回时回复,由于子函数又可以继续调用其他函数,所以需要使用堆栈这种后进先出的数据结构去保存。
return从字面上理解为"返回"
实际上它确实是返回一个值,
return 0即:返回一个数值是0,
return 返回程序本身,即不需要返回值,
它用于控制流程,
即给你安排工作之后,你总要有个回复一样,
做完了,没做完,都是正确的,
它的意义在于回答本身,而不在于工作完成的情况如何
个人理解,没有参考,
如果误导你请原谅,
如果有所帮助也不必客气
return; 代表 结束函数调用
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
如果函数的返回类型不是VOID一定要用到return语句, 这时return语句不返回数据 因此return后面 不需要 跟参数
return; 代表 结束函数调用
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义