一级棒(Eachfun)
RSS订阅
return语句
发表时间:2006-08-01 01:24:47 关键词:C++,MFC,VC,Primer,编程,教程,读书

  引用:return语句用于结束当前正在执行的函数,并将控制权返回给调用此函数的函数。
  引用:return语句有两种形式:reutrn; return expression;……第二种形式提供了函数的结果。
  笔记:以上第一句话说了return的两个作用之一:结束函数。return的作用之二是提供函数的返回值。
  对于return语句的两种形式,情式一只能用于无返回值的函数,情式二可以用于有返回值的函数也可用于无返回值的函数。
  如果函数有返回值,就必须用形式二来结束,这是显而易见的。
  对于没有返回值的函数,可以不写return语句,“隐式的return发生在函数的最后一个语句完成时”。也可以用形式一来结束,这种用法一般用在函数中间,判断某些条件之后就立即结束,后面的语句不再执行。如果用形式二来返回,那么express必须是另一个没有返回值的函数。如:
void FuncA();
void FuncB()
{
  return FuncA();
}
  个人认为这种写法不是好习惯,因为看起来FuncB有了返回值,如果逻辑上有这需要,我认为写成以下格式更好:
void FuncB()
{
  FuncA();
  return;
}
  在BASIC中,函数的返回值与结束是由两个不同的语句实现的。前者是一个给函数名赋值的语句,后者则是“Exit Function”语句。这种设计除了不如C++精练以外,还容易出事。比如在函数开头先给函数名赋一个默认值,然后根据某些条件给它赋其它特定的值并Exit。如果写函数时不小心漏了某个赋值语句,函数将产生BUG。C++则不会产生这种类型的BUG。
  引用:千万不要返回局部对象的引用。
  引用:千万不要返回局部对象的指针。
  笔记:以上两句是黑体的标题,书中专门进行了讨论。不过这个错误虽然严重,却不难理解。知道了就好了。
  main()是一个很特殊的函数,它的特殊性在这里还有体现。引用:“返回类型不是void的函数必须返回一个值,但此规则有一个例外的情况:允许主函数main没有返回值可结束。……编译器会隐式地插入返回0的语句。”

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!