6.8.6 跳转语句
语法
1、jump-statement:
goto identifier ;
continue ;
break ;
return expressionopt ;
语义
2、一条跳转语句引发一个无条件跳转到另一个地方。
6.8.6.1 goto语句
约束
1、一条goto语句中的标识符应该命名一个标签,该标签坐落于当前封闭函数的某个地方。一条goto语句不应该从一个具有可变修改类型的标识符作用域的外部跳转到该标识符作用域的内部。
语义
2、一条goto语句引发一次无条件跳转到在封闭函数中由命名标签作为前缀的语句处。
3、例1 有时为了图方便而跳入到一组复杂语句集的中间。以下概述呈现了一个基于三个假定问题的可能解决方法:
(1)通用的初始化代码仅访问对当前函数可见的对象。
(2)通用初始化代码太大,以至于难以重复。
(3)要判定下一步操作的代码在循环的开头。(为了允许它来通过continue语句而到达,比如)
/* ... * goto first_time; for( ; ;) { // 判定下一步操作 /* ... */ if( 需要重新初始化) { // 仅仅重新初始化代码 /* ... */ first_time: // 通用初始化代码 /* ... */ continue; } // 处理其它操作 /* ... */ }
4、例2
ISO/IEC 9899:2011 条款6.8.6——跳转语句
原文:http://www.cnblogs.com/zenny-chen/p/5115206.html