博客首页 | 排行榜 |

马建辉

本处存档文章除非已声明引用,余者皆为原创。欢迎转载,注明来源即可。

个人档案
博文分类
软件开发要严谨-分享编程经验教训  2010-03-24 15:05

国人讲究中庸之道,凡事只求差不多,在软件开发上也是很随意,思维活跃但编程不严谨不规范,而且严密性不强,考虑不周全,经常因为某一行代码的错误导致整个产品运行得不稳定,笔者对此深有感触,也吃了不少苦头,在这里告诫一下程序员们一定要将自己天才般的思维周密严谨得化为一行行经得起推敲的代码,当然程序是死的人是活的,程序虽然bug多,但是和人比起来,它听话多了,想控制就能控制的,所以一定要控制。好了,不再空口说白话做理论家了(尽管现在这个社会那么多人晃晃悠悠得说几句白话就能挣很多银子)。下面跟大家分享一下笔者在软件开发中的一些经验教训。

1、不要把局部变量的地址作为函数的返回值,因为局部变量地址位于栈中,函数返回,变量释放之后,它的地址就无效了,这个地址在主调函数中是可能会被重新赋给另外一个变量的,那样自然会出现一个地址两个变量的情况,程序自然会莫名其妙得出错。
2、对于变量越界必须严格控制。比如value为int型,而实际应用中value的取值区间为0-3000,对于32位而言,int型的取值范围为-2147483648-2147483647,那么对于value的过零操作一定要谨慎,比如value--;
for(i=0;i
{

}
很显然,这样的程序是危险的,因为如果value当前值为0,那么上述for循环近似于一个死循环了。
3、嵌入式软件开发中如果存在对于flash的读写操作,除了读写加校验之外,如果存在一个标志位,那么不要简单得用0和1来区分,因为flash存在无法避免的位反转,0很容易反转为1,可以用0x55,因为0反转成0x55几乎是不可能的。
4、if最好带个else,因为人算不如天算,除了上帝是永恒的外其他都是好商量的,所以将来可能会出现必须else才能处理的情况。
5、注意sizeof和strlen的区别,如果要得到某个字符串的长度需用strlen,sizeof(指针)结果永远等于1。

还有很多琐碎的,一时想不起,在这里是抛砖引玉,希望大家都能对编程严肃起来不再那么随意,毕竟这不是一个随意的事情,有时一个小错误会引发一连串的错误,慎之慎之

类别:嵌入式 |
上一篇:SyncML在蓝牙车载免提装置中的应用 | 下一篇:蓝牙通信频率稳定性问题
以下网友评论只代表其个人观点,不代表本网站的观点或立场