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);
} 展开
#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);
} 展开
7个回答
展开全部
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 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指针保存好,一边函数返回时回复,由于子函数又可以继续调用其他函数,所以需要使用堆栈这种后进先出的数据结构去保存。
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 0即:返回一个数值是0,
return 返回程序本身,即不需要返回值,
它用于控制流程,
即给你安排工作之后,你总要有个回复一样,
做完了,没做完,都是正确的,
它的意义在于回答本身,而不在于工作完成的情况如何
个人理解,没有参考,
如果误导你请原谅,
如果有所帮助也不必客气
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
return; 代表 结束函数调用
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
如果函数的返回类型不是VOID一定要用到return语句, 这时return语句不返回数据 因此return后面 不需要 跟参数
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
如果函数的返回类型不是VOID一定要用到return语句, 这时return语句不返回数据 因此return后面 不需要 跟参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2006-02-27
展开全部
return; 代表 结束函数调用
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
return 0;代表 结束函数调用 并使该函数返回值为0
return 1 同上 只是返回值变为1
其中0,1的含义可以由用户自己定义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询