一般来说,编码的水平与goto 语句使用的次数成反比。有的人主张慎用但不禁用goto语句,但我主张禁用。关于goto 语句的更多讨论可以参看Steve McConnell 的名著《CodeComplete. Second Edition》。

禁用goto 语句。自从提倡结构化设计以来,goto 就成了有争议的语句。首先,由于goto 语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格;其次,goto 语句经常带来错误或隐患。它可能跳过了变量的初始化、重要的计算等语句,例如:
   struct student *p = NULL;
   …
   goto state;
   p = (struct student *)malloc(…); //被goto 跳过,没有初始化
   …
   state:
   //使用p 指向的内存里的值的代码
   …
如果编译器不能发觉此类错误,每用一次goto 语句都可能留下隐患。

C语言goto关键字—尽量少用相关推荐

  1. C语言为什么要尽量少用全局变量

    在程序链接时,链接器只关心函数和全局变量,链接器把它们识别为符号,来进行链接.注意,高级语言中的函数重载仅仅是语法糖,本质是不同的函数 强符号:函数和已初始化的全局变量 弱符号:未初始化的全局变量 不 ...

  2. c语言goto语句标号作用,goto语句怎么用(c语言goto用法)

    goto语句怎么用(c语言goto用法) 2020-07-28 02:03:29 共10个回答 1.C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置.用法就是"goto ...

  3. c语言字母表关键字,读书笔记-C语言关键字

    001 关键字 C语言一共32个关键字 1. 声明和定义 在开始认识关键字前,必须要明白什么是声明,什么事定义: 定义:(编译器)创建一个对象,为这个对象分配一段内存并给他取上一个名字.在一个作用域内 ...

  4. c语言中switch语句流程图_C语言:C语言保留字(关键字)

    保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...

  5. C语言标准ANSI C、C语言的特点、C语言的关键字(32个)

    C语言标准:通常称为ANSI C. C语言的特点: 1.C语言简洁.紧凑,使用方便.灵活.ANSI C一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分. 2 ...

  6. C语言的关键字和标识符

    一.关键字                  关键字是具有特定含义的.专门用来说明C语言的特定成分的一类单词.          C语言的关键字都是用小写字母书写的,不能用大写字母书写.关键字不能用于 ...

  7. C语言的关键字及其部分关键词详细用法

    1.总述 关键词是由C语言规定的具有特定意义的字符串,通常也称为保留字,用户定义的标识符不应与关键词相同,C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字.控制语句关键字.存储类型关 ...

  8. java编程时 尽量少用_Java编程语言基础知识的要点

    很多Java编程初学者在刚接触Java语言程序的时候,不知道该学习掌握哪些必要的基础知识.下面就说说Java零基础学习Java编程语言基础知识的几个要点.希望能够对Java编程基础入门学习的新手有帮助 ...

  9. sizeof不是java关键字是_下列哪项不是Java语言的关键字。

    下列哪项不是Java语言的关键字. A:instanceof B:goto C:volatile D:sizeof 正确答案:sizeof 解析: 下列哪项不是Java语言的关键字. A:instan ...

最新文章

  1. 【成功智慧】005.最重要的是明确奋斗的目标
  2. GPS服务端解析程序编写日记
  3. 深度学习论文资源(截至2016年)
  4. Java内存模型常见问题
  5. c++ 正则表达式_Java入门 - 语言基础 - 18.正则表达式
  6. 普通技术人员如何快速成长为合格的CTO
  7. java(19) - 反射机制
  8. 图形学笔记1.直线扫描转换与devC的图形库ege扩展
  9. 笔试c语言编程题技巧,c语言笔试题答题技巧
  10. 小程序图片实现自适应大小,超过部分自动裁剪
  11. linux发行版_看一看2020年最漂亮的Linux发行版
  12. 湘乡江南计算机学校舒俊梅,东山学校建校120周年校庆捐款捐物情况公布-湘乡东山学校.DOC...
  13. 【阅读】《乔布斯的魔力演讲》
  14. 乾隆的“十常四勿”之道
  15. /给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[
  16. Android面试真题《思考及解答》10月刊
  17. 一位 19 年 Mac 用户的心声:“我真的很讨厌库克”
  18. oracle field怎么翻译,field是什么意思_field的翻译_音标_读音_用法_例句_爱词霸在线词典...
  19. 【强化学习】用强化学习通关超级马里奥!
  20. java判断日期前后_Java丨时间判断谁前谁后

热门文章

  1. matlab中 text 使用画图示例
  2. Matlab计算机视觉/图像处理工具箱(待续)
  3. 关于spring MVC中加载多个validator的方法。
  4. 【转】DB2 常用命令
  5. 如何学习Linux / 新手入门
  6. Tab栏切换布局分析
  7. 2.0 es6中forEach以及数组操作
  8. 面试官: 用css实现android系统的loading动画
  9. 梦回JavaScript--数据类型之undefined
  10. 配置FCKeditor_2.6.3+fckeditor-java-2.4