BBS.ChinaUnix.net
今日推荐    首页 | 新闻 | Linux | 博客 | 论坛 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 沙龙 | 搜索     
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


一个困扰我多年的问题
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
www.netbor.net   帅哥
光明使者



UID:196882
注册:2004-11-6
最后登录: 2008-05-08
帖子:996
精华:0

可用积分:198
信誉积分:100
专家积分:0 (本版)

来自:江苏省苏州市园区
状态:...离线...

[个人空间] [短信] [博客]


顶部
1楼 发表于 2008-5-8 08:35 
请问,在什么时候最好是使用 goto, 请举例,详细说明为什么?谢谢!



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________


是金子就会发光。
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
prolj
法师
编译爱好者


CU奥运火炬传递手2008
UID:293231
注册:2005-7-19
最后登录: 2008-05-17
帖子:5512
精华:3

可用积分:2400
信誉积分:165
专家积分:0 (本版)

来自:乡下
状态:...离线...

[个人空间] [短信] [博客]


顶部
2楼 发表于 2008-5-8 10:00 
goto有可能会是程序变成不可归约的,不可归约的代码是没法优化的。仅此而已。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我很忙,没时间思考!
别的我不行,踏踏实实作个王宝强总还可以吧?
对于自己钟爱的编译,不在于一时的激情,也不等于一生的坚持,而在于一生中一次又一次的激情!
没有自己想法,事后附和别人的人,和PMP的BC没区别!
真爱生命,远离骗子!
女:我没有男朋友。男:那你被人包养了吗?女:-_#...

IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
aero   帅哥  爱心使者2003 (偶素小军帽)
荣誉版主-老法王
书中自有黄金屋~



CU奥运火炬传递手2008
荣誉版主  
UID:46911
注册:2003-3-10
最后登录: 2008-05-17
帖子:22827
精华:10

可用积分:18
信誉积分:345
专家积分:0 (本版)

来自:辽宁沈阳
状态:...离线...

[个人空间] [短信] [博客]


顶部
3楼 发表于 2008-5-8 10:05 
看经验。庞大的错误处理退出的时候,用goto很方便。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

两小无猜,青梅竹马。
既然做匠人,就要有匠人魂。
偶的相册
偶的blog
找兼职,给钱就干。


IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
zhongfangqing (构造快乐)
风云使者




UID:355156
注册:2005-12-27
最后登录: 2008-05-16
帖子:478
精华:0

可用积分:448
信誉积分:110
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
4楼 发表于 2008-5-8 10:06 
bool test()
{
  int nFile1,nFile2,nSock;
  nFile = open(文件1)
  if(failed)
  {
     goto ERR1;
  }
  nFile2 = open(文件2)
  if(failed)
{
   goto ERR2;
}

  nSock = socket(...);
  if(failed)
  {
    goto ERR3;
  }

  ...//other fucks

  close(nSock);
  close(nFile2);
  close(nFile1);
  return true;
ERR3:
  close(hFile2);
ERR2:
  close(hFile1);
ERR1:
  return false;
}



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
lenovo   帅哥
荣誉版主-法王




荣誉版主  
UID:54607
注册:2003-5-1
最后登录: 2008-05-17
帖子:15571
精华:5

可用积分:3689
信誉积分:105
专家积分:115 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
5楼 发表于 2008-5-8 10:06 
在一个层层嵌套的结构的最里面执行出了问题,
这时需要立刻返回这个函数。
如果不用goto,很麻烦。
for1()
{
    for2()
    {
         for3()
         {
              ...
                 forn()
                 {
                       ...
                       // 这里出了错,需要立刻返回该函数
                       goto lable;
                 }
                 ...
         }
          ...
    }
     ...
}
lable:
        return -1;



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

山一程,水一程,身向榆关那畔行,夜深千帐灯。
风一更,雪一更,聒碎乡心梦不成,故园无此声。
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
版主 flw   帅哥
广告杀手-法王
侠客



UID:14893
注册:2002-8-12
最后登录: 2008-05-17
帖子:18719
精华:10

可用积分:7521
信誉积分:790
专家积分:0 (本版)

状态:...在线...

[个人空间] [短信] [博客]


顶部
6楼 发表于 2008-5-8 10:14 
to 五楼:
我觉得直接 return 就行了。绕那么大个弯子,你费什么劲啊。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

data Maybe a = Nothing
             | Just a

---
如何知道一个变量是什么类型?
如何知道分配的内存有多大?
如何知道 select 的 fd_set 里哪个句柄是无效的?
如何知道指针是不是有效的?
如何通过 FILE 指针得到文件名?
……
如何知道我昨晚把袜子脱哪儿了?
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
yecheng_110 (我是噩梦)
天使



UID:434651
注册:2006-6-24
最后登录: 2008-05-17
帖子:1128
精华:1

可用积分:1024
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
7楼 发表于 2008-5-8 10:29 
尽量不用GOTO
基本上也不用GOTO



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我要加油!加油!
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
lenovo   帅哥
荣誉版主-法王




荣誉版主  
UID:54607
注册:2003-5-1
最后登录: 2008-05-17
帖子:15571
精华:5

可用积分:3689
信誉积分:105
专家积分:115 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
8楼 发表于 2008-5-8 10:32 


QUOTE:
原帖由 flw 于 2008-5-8 10:14 发表
to 五楼:
我觉得直接 return 就行了。绕那么大个弯子,你费什么劲啊。

呵呵,你一说我想起来了,
还要有些后处理呢。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

山一程,水一程,身向榆关那畔行,夜深千帐灯。
风一更,雪一更,聒碎乡心梦不成,故园无此声。
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
www.netbor.net   帅哥
光明使者



UID:196882
注册:2004-11-6
最后登录: 2008-05-08
帖子:996
精华:0

可用积分:198
信誉积分:100
专家积分:0 (本版)

来自:江苏省苏州市园区
状态:...离线...

[个人空间] [短信] [博客]


顶部
9楼 发表于 2008-5-8 10:57 
好像还没有说到最重点的,到底有没有用的必要?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________


是金子就会发光。
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女
ycxm   帅哥
精灵王



UID:238007
注册:2005-3-13
最后登录: 2008-05-17
帖子:342
精华:0

可用积分:225
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
10楼 发表于 2008-5-8 10:59 


QUOTE:
原帖由 yecheng_110 于 2008-5-8 10:29 发表
尽量不用GOTO
基本上也不用GOTO

这是教好的!!!



您对本贴的看法:鲜花[0] 臭蛋[0]
IBM 集群技术资源全面接触 |赠送linux之父推荐的经典书 | CU-2008奥运之春摄影赛 | 新版开张:《IT爱车族》分享香车美女

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.039128 second(s), 4 queries , Gzip enabled