c++goto语句为什么不能跳过变量定义语句

[复制链接]
查看11 | 回复2 | 2010-11-16 19:55:48 | 显示全部楼层 |阅读模式
你要知道才回答啊浪费表情 这是c++标准规定的

回复

使用道具 举报

千问 | 2010-11-16 19:55:48 | 显示全部楼层
goto语句不能跨越变量的定义语句向前跳转,但向后跳过已经执行的变量定义语句则是合法的。向前跳过未执行的变量定义语句,意味着变量可能在没有定义的情况下使用。向后跳回到一个变量定义之前,则会使系统撤销这个变量,然后再重新创建它。
回复

使用道具 举报

千问 | 2010-11-16 19:55:48 | 显示全部楼层
C++的源码先会转换成汇编代码,之后进行汇编和链接.那么这里就要探讨汇编语言了.在汇编语言中,程序的数据段定义和代码段定义是分开的,数据段定义(数据段不包含堆栈段)必须在代码运行前分配完毕.所以,一个函数(在汇编中称为过程)的代码,永远是在数据段定义后才执行的,goto语句是代码段内容,不可能出现在数据段中,函数会先把需要的变量定义之后(也就是在数据段定
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行