C语言中return的用法???

以下程序中return;和return0;代表什么含义呢??return1的作用是什么??其中0,1的含义是用户自己定义吗??比如return-1,return3.如果函... 以下程序中return;和return 0;代表什么含义呢?? return 1的作用是什么??其中0,1的含义是用户自己定义吗?? 比如return -1,return 3. 如果函数的返回类型不是VOID一定要用到return语句, 这时return语句返回的数据对主函数可能是有用的, 也可能是没有用的. 如果是没用的, 为什么还要返回一个数据呢?有什么作用呢?是不是通知编译器,已经完成了函数调用? #include<stdio.h> #include<string.h> #include<conio.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void encryptChar() { int i,j; char *p; for(i=0;i<maxline;i++) for(j=0;j<strlen(xx[i]);j++) { p=(xx[i][j]*11)%256; if(p<=32||p>130) ; else xx[i][j]=p; } } void main() { clrscr(); if(ReadDat()) { printf("cannot open ENG.IN!\n\007"); return; } encryptChar(); WriteDat(); system("pause"); } int ReadDat(void) { FILE *fp; int i=0; unsigned char *p; if((fp=fopen("eng.in","r"))==NULL) return 1; while(fgets(xx[i],80,fp)!=NULL) { p=strchr(xx[i],'\n'); if(p)*p=0; i++; } maxline=i; fclose(fp); return 0; } void WriteDat(void) { FILE *fp; int i; fp=fopen("ps1.dat","w"); for(i=0;i<maxline;i++) { printf("%s\n",xx[i]); fprintf(fp,"%s\n",xx[i]); } fclose(fp); } 展开
 我来答
郁义捷堂
2019-09-24 · TA获得超过1215个赞
知道小有建树答主
回答量:1949
采纳率:93%
帮助的人:9.3万
展开全部
return从字面上理解为"返回"
实际上它确实是返回一个值,
return
0即:返回一个数值是0,
return
返回程序本身,即不需要
返回值
,
它用于控制流程,
即给你安排工作之后,你总要有个回复一样,
做完了,没做完,都是正确的,
它的意义在于回答本身,而不在于工作完成的情况如何
个人理解,没有参考,
如果误导你
请原谅
,
如果有所帮助也不必客气
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦可夕专
2019-02-09 · TA获得超过1267个赞
知道小有建树答主
回答量:1977
采纳率:100%
帮助的人:9.4万
展开全部
return;
代表
结束函数调用
return
0;代表
结束函数调用
并使该函数返回值为0
return
1
同上
只是返回值变为1
其中0,1的含义可以由用户自己定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魏霜融凝丝
2019-10-17 · TA获得超过1144个赞
知道小有建树答主
回答量:1874
采纳率:90%
帮助的人:8.9万
展开全部
return;
代表
结束函数调用
return
0;代表
结束函数调用
并使该函数返回值为0
return
1
同上
只是返回值变为1
其中0,1的含义可以由用户自己定义
如果函数的返回类型不是VOID一定要用到return语句,
这时return语句不返回数据
因此return后面
不需要
跟参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨璠匡谷枫
2020-01-23 · TA获得超过1128个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:5.1万
展开全部
比如这个函数int
ReadDat(void)
他有个
return
0调用他时if(ReadDat())
所以返回0,1只是为了判断,可能他只有两种情况返回0,1没有什么实际意义,只是为了让IF判断他是属于哪种情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coolarcom
2018-09-24 · TA获得超过235个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:224万
展开全部
要了解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指针保存好,一边函数返回时回复,由于子函数又可以继续调用其他函数,所以需要使用堆栈这种后进先出的数据结构去保存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式