设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
C\C++
›
gcc中的goto只能往后跳,不能往前跳吗?
1
2
/ 2 页
下一页
返回列表
查看:
1196
|
回复:
12
gcc中的goto只能往后跳,不能往前跳吗?
[复制链接]
pupilzeng
pupilzeng
当前离线
积分
2280
IP卡
狗仔卡
发表于 2004-5-20 02:24:22
|
显示全部楼层
|
阅读模式
以前从来都不用goto语句的,今天突然心血来潮,而且在那个地方使用goto方便很多,于是就使用了goto,可居然编译都通不过。
后来我试了往后面跳,却又是可以通过编译的。
似乎ANSI C中没有这个规定吧?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
小劲鸭
小劲鸭
当前离线
积分
2361
IP卡
狗仔卡
发表于 2004-5-20 07:06:49
|
显示全部楼层
GOTO的指令是只看LABEL的, 和你往前往后跳没关系的,我老用GOTO了。
回复
支持
反对
使用道具
举报
显身卡
home_king
home_king
当前离线
积分
2759
IP卡
狗仔卡
发表于 2004-5-20 08:54:19
|
显示全部楼层
goto的跳转限于函数体内,请注意。
回复
支持
反对
使用道具
举报
显身卡
小劲鸭
小劲鸭
当前离线
积分
2361
IP卡
狗仔卡
发表于 2004-5-20 09:15:30
|
显示全部楼层
最初由 home_king 发表
goto的跳转限于函数体内,请注意。
对对, 我以前在CLASS里加GOTO被教授给扣了分, 说没人在structure里用GOTO的, 但不知道什么原因
回复
支持
反对
使用道具
举报
显身卡
home_king
home_king
当前离线
积分
2759
IP卡
狗仔卡
发表于 2004-5-20 09:18:27
|
显示全部楼层
呵呵,在下只擅长C及汇编。
至于C++,爱莫能助,我自己也害怕这种
类
语言。
ps:apt-get的C++源码就看得我够呛得。:p
回复
支持
反对
使用道具
举报
显身卡
pupilzeng
pupilzeng
当前离线
积分
2280
IP卡
狗仔卡
楼主
|
发表于 2004-5-20 11:42:21
|
显示全部楼层
发现了错误所在
原来我在变量定义之前加了label。
像这样
AGAIN:
int i = 0;
复制代码
它就会报在int之前有语法错误。
但这是为什么?标准C中是这样规定的吗?
回复
支持
反对
使用道具
举报
显身卡
小劲鸭
小劲鸭
当前离线
积分
2361
IP卡
狗仔卡
发表于 2004-5-20 11:49:29
|
显示全部楼层
LABEL不能加在定义前啦, 因为事实上定义一个变量是让系统分配一个内存空间给变量, 你在它前面加了LABEL, 让后用GOTO理论上是让系统再一次分配内存空间给这个变量, 这是不合法的啦。 LABEL必须要在定义之外。
回复
支持
反对
使用道具
举报
显身卡
pupilzeng
pupilzeng
当前离线
积分
2280
IP卡
狗仔卡
楼主
|
发表于 2004-5-20 11:57:25
|
显示全部楼层
分析得有道理
但是我如果不会goto到这的话,也就不会有问题呀
可它既然根本就不让我在变量定义前加label。
这个是不是有点霸道?
回复
支持
反对
使用道具
举报
显身卡
小劲鸭
小劲鸭
当前离线
积分
2361
IP卡
狗仔卡
发表于 2004-5-20 12:04:37
|
显示全部楼层
应该这么说, 你加LABEL理论上可以, 因为LABEL事实上是不会被编译进去的, 可以作为COMMENT, 用来辨认,比如你在定义前加definition:, 但我不会这么做啦, 但你用GOTO来回旋到那个definition:就不合法了。因为定义只能一次。这个和汇编语言有点像, 每个PROGRAM都有至少两个主要的SECTIONS, data和code, data是用来定义用的, 而code是程序的主杆。
回复
支持
反对
使用道具
举报
显身卡
pupilzeng
pupilzeng
当前离线
积分
2280
IP卡
狗仔卡
楼主
|
发表于 2004-5-20 12:09:20
|
显示全部楼层
谢谢
不过确实在变量定义之前加label是没什么意义的,因为不能跳转到这里来。
可能编译器为稳妥起见吧,才这样规定的。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表