5647|14

2804

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

6.07【每日一问】return是函数吗? [复制链接]

return 大家都不陌生吧,我想每个人写的第一个程序基本都差不多,就是helllo world,就是现在,我在验证平台的时候还是会用hello world,但是大家不知道有没有关注return,它是函数吗?这些细节问题在公司的笔试面试最容易考你了!~

#incude <stdio.h>
int main()
{
     printf("hello world\n");
     return 0;
}

return 是函数吗?如果不是函数它是宏吗?如果既不是函数也不是宏它是什么?

最新回复

return 是32个关键字之一  详情 回复 发表于 2011-8-21 16:26
点赞 关注
个人签名QQ:1625345502
 
 

回复
举报

2130

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 
return 是C语言标准的指令哈
 
 
 

回复

355

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
return 是针对函数的,由编译器来解释的
  对应汇编语句就是,把返回值填入eax寄存器,然后ret,回到调用本函数的下一条指令处.
下面度了一个LCC编译器的代码.我想不同编译器有不同的定义,如果可以,RETURN的定义由你定.
------------------------
下面来分析LCC里的代码:
#001 case RETURN:
#002         {
#003               Type rty = freturn(cfunc->type);
#004               t = gettok();
#005               definept(NULL);
第3行取得函数返回值的类型。
第4行获取下一个记号。
第5行定义了执行点。

#006               if (t != ';')
#007                    if (rty == voidtype)
#008                    {
#009                          error("extraneous return value\n");
#010                          expr(0);
#011                          retcode(NULL);
#012                    }
#013                    else
#014                          retcode(expr(0));
#015               else
#016               {
#017                    if (rty != voidtype)
#018                    {
#019                          warning("missing return value\n");
#020                          retcode(cnsttree(inttype, 0L));
#021                    }
#022                    else
#023                          retcode(NULL);
#024               }
#025               branch(cfunc->u.f.label);
#026         }
第6行是判断是否返回空值,如果返回空值就进入第16到到23行处理。
第7行判断函数返回值类型是否为空,如果函数返回值是空,那么return语句的返回值一定要为空,否则就是出错。第9行就是提示出错,第10行是处理表达式,第11行返回空值。
第14行是处理返回值的类型不为空的处理,它是调用函数expr来处理return语句后面的表达式。
第17行是处理空类型的返回值,如果不为空值就在第19行里给出警告。
第20行返回相应的类型的0值。
第23行是返回空类型的处理。
第25行跳转到函数结束的标号运行。

#027         expect(';');
#028         break;
#029
第27行是处理是否分号结束。

返回语句主要进行表达式处理和类型判断,以及返回值的类型转换。
 
 
 

回复

578

帖子

1

TA的资源

五彩晶圆(初级)

4
 

学习了

学习一下,return返回一个函数值。
 
 
 

回复

1万

帖子

16

TA的资源

版主

5
 

不是函数是指令

个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

1059

帖子

0

TA的资源

纯净的硅(高级)

6
 
如果说函数是执行一些功能.大概可以算函数吧.不过学的时候都是说return语句
 
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

7
 
大家在深入研究一下?
个人签名QQ:1625345502
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

8
 
感觉没啥考虑的,return就是语句
 
 
 

回复

131

帖子

0

TA的资源

五彩晶圆(初级)

9
 
return怎么能算函数呢,函数其实就是一个子程序,return是吗?
 
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

10
 

回复 9楼 Yound 的帖子

printf是函数吗?
个人签名QQ:1625345502
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(中级)

11
 
个人认为是语句,类似if 、for、 while等等
 
 
 

回复

2130

帖子

0

TA的资源

五彩晶圆(中级)

12
 

原帖由 wanghongyang 于 2011-6-8 14:55 发表 printf是函数吗?

printf是C99中规定的标准库函数

 
 
 

回复

246

帖子

0

TA的资源

纯净的硅(初级)

13
 
楼主,那到底return是不是函数呢?
个人签名坚持不懈!
 
 
 

回复

350

帖子

0

TA的资源

纯净的硅(中级)

14
 
你直接去CSDN问一下,我觉得我们没的必要去研究是否是函数,只需要研究是如何实现的,名字都可以随便取的。
 
 
 

回复

146

帖子

0

TA的资源

一粒金砂(高级)

15
 
return 是32个关键字之一
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表