2015-10-19 37 views

回答

1

该限制不是(仅)在GCC中,而是在C标准本身中。

标签名称是唯一具有功能范围的标识符。 它可以在出现 的函数中的任何位置使用(在goto语句中),并且通过其语法外观 (后跟一个:和一个语句)进行隐式声明。

(来自N1548,第6.2.1.3节)。 “标签变量”不会改变不同功能(例如堆栈)中的环境完全不同的事实(并且不同于单个函数内部,预测它不可能是什么);跳来跳去几乎会打破所有的一切。

堆栈问题更准确地说:目标函数中局部函数变量的值是未知的,函数参数是未知的,一旦目标函数结束,它就不知道程序应该继续在哪里等等。 (并且堆栈不是唯一的问题)