C语言中goto语句的标号有没有作用域?

C语言中goto语句的标号有没有作用域?


慕婉清6462132
浏览 1877回答 3
3回答

慕姐4208626

变控制流,无法通过本身返回。要用goto返回,可以定义多个label,在不同位置配合不同label使用goto语句。label在函数内定义,作用域就是整个函数,和其它名称一样无法改变。由于不是左值,它没有生存期,仅在编译期有意义。----everyone998 错误。编译器至少会对label标识符进行语义检查。函数调用和goto是不同的。函数调用或返回时,一般的实现中需要根据调用约定清理堆栈。调用时先保存现场,复制实际参数,然后才是跳转,并不是直接无条件跳转那么简单。也因此goto语句无法跨函数跳转。

慕码人8056858

作用域为你的整个MAIN函数。不过建议慎重使用,能不用就不用,特别是别往回跳转。
打开App,查看更多内容
随时随地看视频慕课网APP