硬件工程师的10 个C 语言技巧.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
硬件工程师的 10 个 C 语言技巧 硬件设计师最常见的工作内容是通过写代码来测试硬件。这 10 个 C 语言技巧 (C 语言仍然是常见的选择)可以帮助设计师避免因基础性错误而导致某些缺陷的产生并造 成维护方面的困扰。 为了成功的推出一个产品,软件开发过程本身需要经历无数的实践风险和障碍。任 何工程师最不希望的事情就是因所使用语言或工具而带来的挑战。因此,这就需要硬件 设计师编写代码来测试硬件的工作状况,在资源受限的情况下,还需要开发硬件和嵌入 式软件。尽管工具和结构化编程已经有了很大进展,但通常选择的仍然是 C 语言,基础 性错误的不断发生,仍会导致某些缺陷的产生并造成维护方面的困扰。为竭力避免这些 C 编程陷阱,这里有 10 个 C 语言技巧供硬件工程师参考。 技巧#1:不要使用 “GOTO”语句 二十几年前,当计算机编程尚处于起步阶段时,程序流程是由 “GOTO ”语句来控 制。该类语句允许程序员对当前代码行断行,而直接进入另一个不同的代码段。列表 1 为简单的示例。 列表 1 使用 GOTO 语句 编程语言终究开始引入了函数的概念,即允许程序对代码进行断行。如果已经完成, 不再使用 goto 语句来表示代码的断行。函数调用后,函数将回到下一条指令。列表 2 为示例。这一做法改善了程序结构,提高了可读性。自此,这被视为编写程序的正确方 法。只要看到或想到 goto 语句,就会让软件工程师退缩,产生本能的厌恶。其中一个 主要的原因是,一个遍布 goto 语句的程序会让让人很难抓住重心,不便于对程序的理 解和维护。 列表 2 用函数控制流程 技巧#2:使用 FOR (;;)或While (1) 如果 goto 语句已经过时,那么对程序创建无限循环应该如何去做呢,这是一些硬 件工程师可能会疑惑的问题。毕竟,之前都是通过创建一个 goto 语句然后再返回到 main 语句。解决这一问题就要利用 C 语言中已经存在的循环语句 for 和 while (列表3 和 4 )。 列表 3 使用一个无限的 For 循环 列表 4 使用一个无限的 While 循环 列表中的循环条件相对比较简单。for 循环无非是以无条件情况使用条件语句。而 另一方面,while 循环是语句为真即予执行,这等同对任何条件的非零值。 技巧#3:使用合适的条件语句 除代码的可读性之外,程序的执行时间还主要依赖于做决定时所选择的条件结构类 型。许多硬件工程师都熟悉简单的 if 语句的使用。然而,有时工程师可能没有意识到, 如果第一个条件不正确,还可以使用 else 或 else if 语句。这可以节省处理器时间,而不 必评估另一个条件语句。在列表 5 所示的前半部分代码中,如果 Var 值为 1,则代码仍 会查看 Var 是否为 0 。而在用了 else 语句的后半部分代码中,只评估第一个语句,之后 就继续走下面的代码,这样就节省了时钟周期,使代码更加清晰。 列表 5 用 If/Else 替代只用 If If/else if/else 语句可能并不永远适用。如果需要检查若干个可能的条件,switch 语句 可能更合适。这样,处理器可以评估语句,然后从一个答案列表中选择下一步动作,而 不用连续地评估一堆条件。列表 6 显示的例子与列表 5 示例的类型相同。 列表 6 使用 Switch 语句 以上示例的寓意是,让条件语句的选择更开放,以选择出最适合的语句。这种做法 使程序结构更简单,便于理解程序流程,缩短处理器的额外时钟周期。 技巧#4:避免使用汇编语言 微处理器的自然语言为汇编语言指令。为低级别机器语言编程可能会为处理器提供 更高效的代码。然而,人类并不是天生就会这种语言,并且经验表明,编写汇编语言会 造成误解。误解会导致维护不当,更甚者,可能会使系统到处是 bug.一般建议避免使用 汇编语言。实际上,现在大多数编译器都能编译出非常高效的代码。采用 C 语言或 C++ 语言等高级语言的开发,能获得更有序的结构,便于理解和维护,使代码的整体效果更 好。列表 7 给出了一个示例,比较了使一个32 位变量递增所使用的汇编代码和 C 语言 代码。 列表 7 用汇编和 C 语言完成一个变量的递增 汇编 C 代码 当然,现在仍有一些场合适于使用汇编语言,但这种场合仍比较少。首个推荐的场 合是开发引导装载程序。这种情况

文档评论(0)

鱼104 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档