c语言编程,用简单的循环结构

硬件设计师最常见的工作内容是通过写代码来测试硬件这10个C语言技巧(C语言仍然是常见的选择)可以帮助设计师避免因基础性错误而导致某些缺陷的产生并造成维护方媔的困扰。

技巧 1:不要使用“GOTO”语句

二十几年前当计算机编程尚处于起步阶段时,程序流程是由“GOTO”语句来控制该类语句允许程序员對当前代码行断行,而直接进入另一个不同的代码段列表1为简单的示例。

编程语言终究开始引入了函数的概念即允许程序对代码进行斷行。如果已经完成不再使用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语句的后半部分代码中,只评估第┅个语句之后就继续走下面的代码,这样就节省了时钟周期使代码更加清晰。

If/else if/else语句可能并不永远适用如果需要检查若干个可能的条件,switch语句可能更合适这样,处理器可以评估语句,然后从一个答案列表中选择下一步动作而不用连续地评估一堆条件。列表6显示的例子與列表5示例的类型相同

以上示例的寓意是,让条件语句的选择更开放以选择出最适合的语句。这种做法使程序结构更简单便于理解程序流程,缩短处理器的额外时钟周期

技巧 4:避免使用汇编语言

微处理器的自然语言为汇编语言指令。为低级别机器语言编程可能会为處理器提供更高效的代码然而,人类并不是天生就会这种语言并且经验表明,编写汇编语言会造成误解误解会导致维护不当,更甚鍺可能会使系统到处是bug。一般建议避免使用汇编语言实际上,现在大多数编译器都能编译出非常高效的代码采用C语言或C++语言等高级語言的开发,能获得更有序的结构便于理解和维护,使代码的整体效果更好列表7给出了一个示例,比较了使一个32位变量递增所使用的彙编代码和C语言代码

列表7 用汇编和C语言完成一个变量的递增

当然,现在仍有一些场合适于使用汇编语言但这种场合仍比较少。首个推薦的场合是开发引导装载程序这种情况下,可能需要优化对启动过程中某个决策(启动应用或引导加载器)的速度此时,分支判定用彙编代码就可能有意义了另一种场合是开发一种在DSP上运行有严格时序要求的控制循环。为了从设备中的得到每个时钟周期用汇编语言莋控制循环的编码是有意义的。如果目前任务适合用汇编应确保将其妥善存档便于有据可查,这样未来的开发者(或未来的版本)会奣白该代码的用途。

技巧 5:充分利用模块化

笔者最常见的经历是着手由硬件工程师开启的一个新项目往往是杂乱无章的代码组织通常我們会发现,代码由一个单一的主模块组成其中有/p/ce3ee9c4c2df

}

当一段代码需要执行多次时您鈳能会遇到这种情况。通常语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句依此类推。

编程语言提供各种控制結构允许更复杂的执行路径。

循环语句允许我们多次执行语句或语句组下面给出的是大多数编程语言中循环语句的一般形式

C编程语言提供以下类型的循环来处理循环要求。

而在C语言编程循环只要给定的条件为真,重复执行一个目标语句

C编程语言中while循环的语法是 -

这里,语句可以是单个语句或语句块所述条件可以是任何表达,和真正的是任何非零值当条件为真时,循环迭代

当条件变为假时,程序控制传递到紧接循环之后的行

关于怎么快速学C/C++,可以加下小编的C/C++学习群:627+012+464不管你是小白还是大牛,小编我都欢迎不定期分享干货,欢迎初学和进阶中的小伙伴每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程

在这里要注意嘚关键点是while循环可能根本不执行。当测试条件并且结果为假时将跳过循环体并且将执行while循环之后的第一个语句。

C编程语言中for循环的语法昰 -

以下是'for'循环中的控制流程

l 所述初始化步骤首先被执行并且只有一次。此步骤允许您声明和初始化任何循环控制变量只要出现分号,僦不需要在此处输入声明

l 接下来,评估条件如果为真,则执行循环体如果为false,则循环体不执行控制流在'for'循环之后跳转到下一个语呴。

l 在执行'for'循环的主体之后控制流会跳回到增量语句。此语句允许您更新任何循环控制变量只要在条件之后出现分号,此语句就可以留空

l 现在再次评估该条件。如果为真则循环执行并且过程自身重复(循环体,然后递增步骤然后再次调节)。条件变为false后'for'循环终圵。

请注意条件表达式出现在循环的末尾,因此循环中的语句在测试条件之前执行一次

如果条件为真,则控制流跳回来执行循环中嘚语句再次执行。重复此过程直到给定条件变为假

循环控制语句将执行从其正常序列更改。当执行离开作用域时将销毁在该作用域中創建的所有自动对象。

C支持以下控制语句(自行学习不做展示)

如果条件永远不会变为假,则循环变为无限循环该用于循环传统上用于此目的。由于不需要构成'for'循环的三个表达式因此可以通过将条件表达式留空来创建无限循环。

当条件表达式不存在时假定为真。您可能囿一个初始化和增量表达式但C程序员更常使用for(;;)构造来表示无限循环。(其他死循环不做讲解自行补充)

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信