词条 | return |
释义 | 1 C语言语句return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。 ◎ 1. return概念如果实在不需要函数返回什么值,就需要用void声明其类型。 补充:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值的 例如: 1.非void型 int f1() { int i=1; return 1; //return(i); //这样也可以 } 2.void型 void f2() { int i=1; //return;//这样也可以,不要这一句也可以 } 有时即使被调用函数是void类型 被调函数中的return也不是毫无意义的 举例: #include "stdio.h" void function() {printf("111111"); return; printf("222222"); } main() { function(); } 运行结果为:屏幕上只输出一串数字1 而没有2。 但是如果去掉function函数中的return语句 就可以同时输出一串数字2 这里的return其实还有个退出该程序的作用!也就是说在printf("111111");后面加了个return,就表示结束该函数,返回主函数中去了! ◎ 2. 关于C语言中return的一些总结return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值. 说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助. 很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.( void main( ) 从来就不存在于 C++ 或者 C )。下面我分别说一下 C 和 C++ 标准中对 main 函数的定义。 1. C 在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的: int main( void ) int main( int argc, char *argv[] ) (参考资料:ISO/IEC 9899:1999 (E) Programming languages — C 5.1.2.2.1 Program startup) 当然,我们也可以做一点小小的改动。例如:char *argv[] 可以写成 char **argv;argv 和 argc 可以改成别的变量名(如 intval 和 charval),不过一定要符合变量的命名规则。 如果不需要从命令行中获取参数,请用int main(void) ;否则请用int main( int argc, char *argv[] ) 。 main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。 如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。注意,vc6不会在目标文件中加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。现在明白我为什么建议你最好加上 return 语句了吧!不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0; 。 2. C++ C++98 中定义了如下两种 main 函数的定义方式: int main( ) int main( int argc, char *argv[] ) (参考资料:ISO/IEC 14882(1998-9-01)Programming languages — C++ 3.6 Start and termination) int main( ) 等同于 C99 中的 int main( void ) ;int main( int argc, char *argv[] ) 的用法也和 C99 中定义的一样。同样,main 函数的返回值类型也必须是int。如果main函数的末尾没写return语句,C++98 规定编译器要自动在生成的目标文件中加入 return 0; 。同样,vc6 也不支持这个特性,但是 g++3.2(Linux 下的 C++ 编译器)支持。 3. 关于 void main 在 C 和 C++ 中,不接收任何参数也不返回任何信息的函数原型为“void foo(void);”。可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void) 。然而这是错误的!main 函数的返回值应该定义为 int 类型,C 和 C++ 标准中都是这样规定的。虽然在一些编译器中,void main 可以通过编译(如 vc6),但并非所有编译器都支持 void main ,因为标准中从来没有定义过 void main 。g++3.2 中如果 main 函数的返回值不是 int 类型,就根本通不过编译。而 gcc3.2 则会发出警告。所以,如果你想你的程序拥有很好的可移植性,请一定要用 int main 。 4. 返回值的作用 main 函数的返回值用于说明程序的退出状态。如果返回 0,则代表程序正常退出,否则代表程序异常退出。下面我们在 winxp 环境下做一个小实验。首先编译下面的程序: int main( void ) { return 0; } 然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo %ERRORLEVEL%”,回车,就可以看到程序的返回值为 0 。假设刚才编译好的文件是 a.exe ,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非 0 值,重新编译后输入“a && dir”,则 dir 不会执行。因为 && 的含义是:如果 && 前面的程序正常退出,则继续执行 && 后面的程序,否则不执行。也就是说,利用程序的返回值,我们可以控制要不要执行下一个程序。这就是 int main 的好处。如果你有兴趣,也可以把 main 函数的返回值类型改成非 int 类型(如 float),重新编译后执行“a && dir”,看看会出现什么情况,想想为什么会出现那样的情况。顺便提一下,如果输入 a || dir 的话,则表示如果 a 异常退出,则执行 dir 。 5. 那么 int main(intargc,char*argv[],char*envp[])呢? 这当然也不是标准 C 里面定义的东西!char*envp[] 是某些编译器提供的扩展功能,用于获取系统的环境变量。因为不是标准,所以并非所有编译器都支持,故而移植性差,不推荐使用。 到了这里,你应该了解为什么主函数定义为 int返回类型,而且函数体里面有return 0;这个语句了吧. 下面具体说说我对return的应用的理解。 只要一个函数的返回值是数字型的,那么就可以返回0(即return 0),其实你返回多少都没问题。一般情况下,C++做出来的函数都要求返回一个值,当函数执行正常,且达到了一般情况下的目的,那么就返回0表示正确的调用了该函数,这个0就是返回给主调函数以通知没有出错的;如果函数调用中出错,或者没有按照一般情况执行,那么就返回1,以告知主调函数采取响应策略;如果你在某个函数所在类的定义所在的头文件中定义了一组状态值(一般都是负整数),那么函数就可以返回不同的值以告之主调函数具体发生了什么异常或错误,这种情况一般用于函数功能独立性较差的的情况。所以一般不鼓励把函数返回类型定义为void,至少返回应该是int,而在函数的最后加上return 0.语句: int func(参数列表) { …… …… …… Return 0; } 在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。 如果你定义一个函数有返回类型,可以想下面那样调用: int func() { int value; …… …… …… return value; } int main() { int intvalue; intvalue=func(); …… …… return 0; } return语句后面具体是什么内容,这就要具体情况具体分析了: (1) 在返回类型是char的函数中,return后应该是char类型的值; (2) 在返回类型是int的函数中,如果是要停止函数的调用,最好应该为0;其他的按照你的目的而定,只要是int 类型就行了 (3) 在返回类型是结构类型的函数中,return后应该是结构的一个实例对象。 总之,函数定义为什么样的返回类型,该函数中return后就应该是相应类型的值。 2 音乐专辑韩国组合FTIsland专辑 《RETURN》(迷你三辑) 发行国家:韩国 歌手:F.T.Island 语言:韩语发售国家:韩国发行日期:2011.05.24 曲目: 1. HELLO HELLO 2. OH 3. SUNSHINE GIRL 4. 고백합니다 告白 5. 널갖겠다 拥有你 音乐作品热门歌曲01 friends will be friends 02 all or nothing 03 lion s eye 04 life must go on 05 tonight专辑专辑名称 发行时间 语言 试听专辑 详情 《RETURN》(迷你三辑) 2011-05-24 韩语 专辑类型:录音室专辑专辑简介:F.T.Island!!!!!!!专辑曲目(5)01 HELLO HELLO 02 OH 03 SUNSHINE GIRL 04 고백합니다 (告白) 05 널갖겠다 (拥有你) 3 英语释意不及物动词 vi. 1.回,返回,归[(+to/from)] She did not return home till eleven o'clock. 她十一点钟才回家。 2.重新发生;回复,恢复[(+to)] The situation has returned to normal in the capital. 首都的局势已恢复正常。 3.归还,退回[(+to)] 4.回答;反驳 及物动词 vt. 1.还,归还;送回[(+to)][O1] Have you returned the novel to the library? 那本小说你还给图书馆了吗? 2.回答,回报;报答 We decided to return blow for blow. 我们决定以牙还牙。 3.选举,选出[(+to)] 4.【律】(陪审团)正式宣布(裁决) 5.获得,产生(利润等) The performance returned $2,000 over expenses. 这场演出除去开支赢余二千元。 6.报告;申报 7.反射(光、声等) 8.回答说;反驳道 名词 n. 1.回,归,返回[C][U][(+from/to)] On his return he reported his findings to the committee. 他一回来就向委员会报告调查结果。 2.还,归还[U] 3.回答;报答[U][C] He expected no return when he decided to give us full support. 他决定全力支持我们时并无图报之意。 4.回复;复发;恢复;再现[U][C] She had a return of the heart attacks. 她心脏病又发作了。 5.收益,利润;利息[P1] 6.报告书;申报;报表[C] 7.【英】来回票[C] 8.退货[P] 形容词 a. 1.返回的,回程的;来回的 2.报答的;回报的 The professor paid a return visit to his American colleague. 教授回访了美国同事。 3.返回的,折回的 4 Liza Johnson执导电影归来译 名 回家/归来 片 名 Return 年 代 2011 国 家 美国 类 别 剧情 语 言 英语 字 幕 英文 IMDB评分 5.6/10 from 159 users 片 长 97 Mins 导 演 丽莎·约翰逊 Liza Johnson 主 演 琳达·卡德里尼 Linda Cardellini ….Kelli 迈克尔·珊农 Michael Shannon ….Mike 约翰·斯拉特里 John Slattery ….Bud 塔拉·巴萨姆 Talia Balsam ….Julie Emma Rayne Lyle ….Jackie 保罗·斯帕克斯 Paul Sparks ….Ed 路易莎·克劳瑟 Louisa Krause ….Shannon Rosie Benton ….Brooke James Murtaugh ….Mr. Miller 本片讲述了一位女大兵从战场回来,却发现自己难以适应现实生活的故事。 旅途归来,Kelli回到了她一直居住的颓废小镇,她迫不急待地回归她以往的生活;等待她的一如既往的生活:毯子下的光脚,电视机前的冰啤,孩子头发的味道。慢慢地,虽说,她意识到她日常生活与她离开前并不相同。她拼命找寻在这个颓废小镇以及在家庭中的她所处的位置;但她找不到。面对她所享有的她一直为之守护的生活方式,她能改变什么? Back from a tour of duty, Kelli can’t wait to rejoin her old life in the rust belt town she’s always lived in. She’s ready to experience the old feelings of everyday life- the carpet under her bare feet, a cold beer in front of the television, the smell of her baby’s head. Slowly, though, she realizes that her everyday life doesn’t resemble the one she left. Struggling to find her place in her family and the rust-belt town she no longer recognizes, what can she reclaim of her share of the way of life she’s been fighting to protect? A soldier returns to her family, friends, and old job after a tour of duty, though she finds herself struggling to find her place in her everyday life. |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。