宝玑手表是什么档次| 吃什么提神| 泌乳素高有什么症状表现| 四月初四是什么节日| 红细胞压积什么意思| 睡前喝蜂蜜水有什么好处| 6月份什么星座| dream car是什么意思| 手机号码是什么| 祸不单行什么意思| 出汗太多会对身体造成什么伤害| 灰指甲挂号挂什么科| 摆渡是什么意思| 咳嗽咳白痰是什么症状| konka是什么牌子| 申字五行属什么| 手上有湿疹是什么原因引起的| 直博是什么意思| 梦到绿色的蛇是什么意思| pisen是什么牌子| 肉桂和桂皮有什么区别| 酱油和生抽有什么区别| 什么是包容| 脖子老出汗是什么原因| 环球中心有什么好玩的| 蚊虫叮咬红肿用什么药| 氨气是什么| 草包是什么意思| 螺丝吃什么| 钙化灶是什么意思| 脸色发红什么原因| 毒龙钻什么意思| 沙蟹吃什么| 稻谷什么时候成熟| 双侧下鼻甲肥大是什么意思| 气胸吃什么药好得快| 男人梦见老鼠什么征兆| 补气血吃什么药效果好| 月球表面的坑叫什么| 强碱是什么| 中焦湿热吃什么中成药| 香赞是什么意思| 尿素偏高是什么原因| 什么药治痔疮最快| 烧心是什么原因造成的| 野餐带什么| 阿奇霉素主治什么| 6月25什么星座| 什么是金融行业| 两点是什么时辰| 为什么一生气就胃疼| 大腿内侧发黑是什么原因| 西米露是什么材料做的| 重度肠上皮化生是什么意思| 前位子宫和后位子宫有什么区别| 为什么一站起来就头晕眼前发黑| yy是什么意思| 为什么美国支持以色列| 弯刀裤适合什么人穿| 什么是肝掌| 什么是阴虚什么是阳虚| 失眠睡不着是什么病| 阿昔洛韦片治什么病| 煮海带放什么容易烂| 什么是骨质疏松| 情人眼里出西施是什么意思| 蒙古族信仰什么教| 阴道出血用什么药| 静水流深什么意思| 患者是什么意思| 小暑大暑是什么意思| 刍狗是什么意思| 撕漫男什么意思| 霉菌感染男性什么症状| 江团鱼又叫什么鱼| 梦见把头发剪短了是什么意思| 刺猬和豪猪有什么区别| tap什么意思| 什么是股癣| 真菌镜检阴性是什么意思| 随诊什么意思| 咖啡有什么营养| 生吃大葱有什么好处和坏处| 痛经挂什么科| 狮子座什么星象| 甲磺酸倍他司汀片治什么病| 标本是什么意思| 口炎是什么字| 不能吃辣是什么原因| 准备好了吗时刻准备着是什么歌| 左侧上颌窦炎症是什么意思| 丑什么生肖| 梦见洗碗是什么预兆| 老人经常便秘有什么好办法| 什么叫真爱| 怀孕尿液是什么颜色| 抗战纪念日为什么是9月3日| 剑玉是什么| 双肾实质回声增强是什么意思| 鲤鱼爱吃什么| 结核病是什么| 今天适合穿什么衣服| 女人左下巴有痣代表什么| 男生喜欢什么| 什么地走路| 梦见做被子什么意思| 常吃阿司匹林有什么副作用| 八月有什么节日| 为什么会长脂肪瘤| 月子里生气有什么危害| 屁股尾骨疼是什么原因| 妇科假丝酵母菌是什么病| 梦见一条大蟒蛇是什么征兆| 胃酸分泌过多是什么原因造成的| 精子什么颜色| 吃什么白蛋白提升快| 老是打喷嚏是什么原因| 八月一号什么星座| 煞科什么意思| 区间放量是什么意思| 烟花三月是什么意思| 大便粘稠是什么原因| 横空出世什么意思| 开门杀是什么意思| 高血糖吃什么| 琴酒是什么酒| 扁豆长什么样子图片| 转的第四笔是什么| ab型和o型生的孩子是什么血型| 不可什么什么| 群体是什么意思| 八是什么生肖| 梦见着火是什么意思| 代谢不好吃什么药| 肛瘘不治疗有什么后果| 猫砂是什么材料做的| 气胸吃什么药好得快| 黄皮适合什么颜色的衣服| 发改委是干什么的| 腰肌劳损需要注意什么| 结膜炎是什么病| 太子龙男装什么档次| 结婚5年是什么婚| 和包是什么| 脸上长痘痘是什么原因引起的| 一什么乌云| hcg什么时候开始下降| 为什么会得风湿| 亚米是什么意思| 朝鲜的货币叫什么| 膝关节疼痛用什么药效果最好| 1920年属什么生肖| 低度鳞状上皮内病变是什么意思| 身上老是痒是什么原因| 什么的山谷| 梦见酒是什么意思| 吃什么水果补铁| 小t是什么意思| 什么是晶体| 舒张压是什么| 为什么一吃完饭就肚子疼| 什么的亮光| 上颌窦炎症是什么病| soleil是什么意思| 舟字五行属什么| 陕西有什么特产| 喝什么茶去火| 糖尿病吃什么水果好| saa是什么检查| 鸡的五行属什么| 刺激是什么意思| 清蒸鱼一般用什么鱼| 为什么会有口腔溃疡| 什么叫牙周炎| 7月1日什么节日| 毓字五行属什么| 鼠标cpi是什么意思| 心脏疼痛吃什么药| 悔教夫婿觅封侯是什么意思| 什么水果可以美白| trp是什么氨基酸| 蜜蜡五行属什么| 躯体形式障碍是什么病| 肝多发小囊肿什么意思| 大便干燥吃什么药| 胆囊炎适合吃什么食物| 咸鸭蛋不能和什么一起吃| 男人血精是什么原因造成的| 眼角膜脱落有什么症状| 蹲不下去是什么原因| 前白蛋白是什么意思| 斑秃吃什么药| p是什么意思医学| 白内障用什么眼药水| 什么相接| 手癣用什么药膏效果好| 17592a是什么尺码男装| hcg值低是什么原因| 肚脐左侧疼是什么原因| 我国四大发明是什么| 2月27日什么星座| 有齿痕吃什么药| 钦字五行属什么| 经变是什么意思| 白案是什么意思| 小巫见大巫是什么意思| 指什么为什么| 帕斯是什么意思| 医院挂号用什么app| 动手术后吃什么对伤口恢复比较快| 跌宕起伏什么意思| 吃什么对肾有好处| 吃什么可以长头发| 天女散花是什么意思| 布洛芬0.3和0.4g有什么区别| 拜土地公要准备什么东西| 一什么粽子| 妈妈姐姐的女儿叫什么| 胆汁是什么| 神经衰弱吃什么药| 胃出血是什么原因引起的| 人皇是什么意思| 手心朝上是什么意思| 34岁属什么| 一个三点水一个除念什么| pmid是什么意思| 什么是胃炎| 岁月如歌下一句是什么| 五月十七是什么星座| b超回声不均匀是什么意思| 什么叫潮吹| 6月16号是什么星座| 女的肾虚是什么原因引起的| 吃完饭就想吐是什么原因| 股癣用什么药膏好得快| 咳黄痰是什么原因| 喉咙发炎咳嗽吃什么药好得快| 大咖是什么意思| 男人喜欢什么罩杯| 舌炎是什么原因引起的怎样治疗| 胃阳虚吃什么中成药| 燊读什么| 饷是什么意思| 协会是什么意思| 刚生完宝宝的产妇吃什么好| 灰色t恤配什么颜色裤子| 热络是什么意思| 胃疼屁多是什么原因| 平仓什么意思| 割包皮有什么好处和坏处| 说话口臭是什么原因引起的| 11月份是什么星座的| 高血脂是什么原因造成的| 月破是什么意思| 音叉是什么| 外阴有白色的东西是什么| 检查怀孕挂什么科| 湿热体质适合喝什么茶| 锴字五行属什么| 梦见好多水果是什么预兆| 梦见和死去的亲人说话是什么意思| 四月二十一是什么星座| 1966年属马的是什么命| 自欺欺人是什么意思| 百度

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

  作者:dolphin 时间:2025-08-06
百度 他们共同的名字叫犬科。

硬件设计师最常见的工作内容是通过写代码来测试硬件。这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代码

  当然,现在仍有一些场合适于使用汇编语言,但这种场合仍比较少。首个推荐的场合是开发引导装载程序。这种情况下,可能需要优化对启动过程中某个决策(启动应用或引导加载器)的速度。此时,分支判定用汇编代码就可能有意义了。另一种场合是开发一种在DSP上运行有严格时序要求的控制循环。为了从设备中的得到每个时钟周期,用汇编语言做控制循环的编码是有意义的。如果目前任务适合用汇编,应确保将其妥善存档便于有据可查,这样,未来的开发者(或未来的版本)会明白该代码的用途。
  技巧#5:充分利用模块化
  笔者最常见的经历是着手由硬件工程师开启的一个新项目往往是杂乱无章的代码组织。通常我们会发现,代码由一个单一的主模块组成,其中有2.5万多行代码。在这些应用中,一切都是全局性的,函数寥寥无几,goto语句贯穿整个代码结构。15年前这算正常,但如今已不再适用了!C语言编程使工程师能够将代码分成独立的功能模块,这简化了代码导航,同时还能够使工程师使用封装等面向对象技术。代码可以被组织成逻辑模块,这很有意义。虽然可能要先花点时间(几分钟),但从长远来看,这将能省掉很多漫长之夜,和很多调试之苦!
  技巧#6:写千层饼式代码而非面条式代码
  Beningo是一个意大利名字,和许多意大利人一样,我对意大利面食也是毫无保留地热爱。当拿意大利面食与软件相比时,我就会想到两种面食,即意大利面条和千层饼。意大利面条比较混乱,面条相互交织,纵横交错,结果完全没有任何类型的结构。编写非结构化代码就非常像意大利面条:咬一口,完全不知道吃的是哪部分。

关键词: 硬件 工程师 10个 语言 技巧

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关电路


什么是碧玺 豫州是现在的什么地方 启攒是什么意思 什么是杀青 带状疱疹能吃什么
白矾和明矾有什么区别 脸部爱出油是什么原因 腋下出汗是什么原因 火山飘雪是什么菜 经常头昏是什么原因
脑溢血是什么原因引起的 不举是什么原因造成的 头疼发热是什么原因 np是什么意思 奥氮平片治疗什么病
血小板异常是什么原因 梦见自己生个女孩是什么意思 水泡长什么样子图片 网球肘用什么膏药效果好 岍是什么意思
泼皮是什么意思hcv8jop8ns3r.cn 股票杠杆是什么意思hcv8jop2ns2r.cn 佛心果是什么东西hcv9jop3ns9r.cn 热量是什么意思hcv9jop1ns9r.cn 北加田加共是什么字yanzhenzixun.com
梦见自己大出血是什么征兆hcv9jop7ns4r.cn 疝气吃什么药效果好shenchushe.com hia是什么意思hcv8jop6ns7r.cn 被老鼠咬了打什么疫苗hcv9jop3ns1r.cn 白居易有什么之称hcv7jop5ns1r.cn
蟾蜍是什么hcv8jop7ns6r.cn 手腕疼痛挂什么科hcv8jop6ns3r.cn 系统性红斑狼疮挂什么科onlinewuye.com 什么叫介入治疗hcv9jop3ns2r.cn 什么样的枫叶hcv9jop2ns5r.cn
控制欲是什么意思hcv8jop9ns6r.cn 给小孩办身份证需要什么hcv7jop4ns7r.cn 狠人是什么意思hcv7jop5ns3r.cn 红袖什么意思mmeoe.com 书到用时方恨少下一句是什么hcv8jop5ns8r.cn
百度