原创 嵌入式软件编程的可视化与简单化

2015-4-2 17:51 1457 10 3 分类: 消费电子

        代码编制中,一部分问题是程序员自身造成的。比如公司办公室的窗户,晚上下班后常有人忘了关。解决措施一是多加强培训,二是罚款,但人们仍然是容易忘。行政部门在办公室门口的位置,长期摆放一块指示牌,或是活动的,或是贴在门把手上,让每位进出的人都能被提示到,因为人的健忘或粗心而导致漏关窗的问题可被避免掉。程序编制中也是如此。

尽量将语句简单化,代码简单化、代码数据结构简单化、代码逻辑简单化,简单的自然就不容易错。再一个是可视化,将可能出问题的地方,用特殊的色彩、字体、特殊符号、布局方式,时刻提醒程序员在调用函数的时候、引用变量的时候、编程习惯上,将隐性问题显性化,避免人为失误。

 

例1:函数被调用时,容易出错的地方是形参的赋值,形参的个数、次序、数据类型的匹配都是易出错点。

解决措施有二:一是减少形参的数量,形参个数越少,赋值就简单,出错概率就小;二是加比较突出的注释,注释语句用色彩、大小、加黑、斜体等明显标志类方式,提醒调用者注意,减少程序员粗心导致的出错;三是测试和设计规范检查上,将此项的检查列入检查清单,通过项目组外部审查人员重点检查潜在隐患问题。

 

例2:对于程序中会多次出现的同一物理量参数,如系数π,取3.1415926,在程序中会多次出现,快速录入程序过程中,笔误在所难免,就算错了,编译过程也检查不出来。类似的这种情况,最好使用宏定义的方式实现。

宏定义是C提供的三种预处理功能的其中一种,宏定义又称为宏代换、宏替换,简称“宏”。格式为:

 

#define 标识符 字符串

 

“宏”概念的关键是“换”,即在对相关命令或语句的含义和功能作具体分析之前就要换,如:

 

#define PI 3.1415926

 

宏定义在编译过程中的执行过程,是先强行将程序中的宏名字用宏定义中的式子或数值机械地等同替换,类似于Microsoft Word中的替换功能,然后再进行编译。本例中则是在编译预处理时,就先将程序中出现的PI先全部换成3.1415926这个常数,然后再进行编译。

这种做法的好处是避免在键盘输入程序时,多次重复敲入同一数值,容易出错,而且该错误编译器还查不出来,还比较分散,比较难查找。通过宏,在整个程序中只出现一次常数,一是细心点就不易错,即使错了,一次性就能检查到也方便。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1678053 2015-4-7 19:42

看看
相关推荐阅读
武晔卿 2017-05-13 06:38
接地线缆的选型错误
无论是Ⅰ类设备(有PE保护接地Earth),还是Ⅱ类设备(浮地或整机浮地但有内部的金属板充作保护公共地使用的),常见一些与EMC与可靠性的接地线错误应用,因此导致EMI干扰,该泄放的高频干扰泄放不掉而...
武晔卿 2017-03-17 07:43
电磁兼容设计整改三要素分析:电压容限、高频特性、回流路径
深入浅出抓本质 电磁兼容公益讲座 讲解内容: l 打静电时会复位重启,复位端、地线端、电源端发生了什么?——电压容限 l 浪涌发生时,有防雷防护,为什么后面电路仍然坏?为什么有起火? ——失效机理 l...
武晔卿 2017-02-23 14:11
一个工程师风花雪月的事
一位新毕业研究生电子工程师A的故事。 研究生三年,小A一直暗恋本校另外系的一个女生,但又怯怯地不敢表白。做毕业论文的时候,在实验室里,心绪烦乱,幻想着她羞涩一笑中牵她手的样子,不由得偷笑出来。但一想到...
武晔卿 2016-06-29 10:42
对开关管损坏做失效分析的一种方法
        电路板工作中不可能不发生芯片或半导体器件的损坏,损坏后,要想从器件的尸体上发现其死因,并能知晓导致其死伤的应力和作用路径,自然就可以很容易的...
武晔卿 2016-06-29 10:31
电路及元器件故障探查及原因分析方法
        电路板上器件故障之后,哪里坏掉了?坏到了什么程度?怎么坏的?会因其隐蔽性而难以查找具体故障点,也因为对故障原因故障机理不清楚而导致无从下手,或者只能用倒推法,用逐个实验的方式,将各...
武晔卿 2016-05-03 07:51
如何排查电子产品在用户现场偶发的故障?
工作中,不少朋友,几乎每位工程师,都遇到过电子产品在用户现场偶尔发生故障,如死机、复位、数据传输错误等。维修工程师在现场跟踪排查时,故障又不会再现,拿回实验室,怎么试验又都是好的。使人陷入一种无从...
EE直播间
更多
我要评论
1
10
关闭 站长推荐上一条 /3 下一条