原创 以后一定注意不能忽略编译器的警告

2008-7-13 22:54 3306 5 6 分类: MCU/ 嵌入式

1,为什么容易忽略编译器的警告信息?


    1)编程时处理各种error已经很让人恼火的了,error自然被放在次要位置;


    2)绝大多数下,程序在存在warnings的情况下,在短期内可以正常运行,我们根本看不到错误,导致warning近一步被轻视;


    3)没有养成好的工作习惯,带有warning的代码是不能交付的,而我们判断交付的标准中往往没有对代码提出更为细致的要求。


2,忽视编译警告往往会给我们造成重大损失


    最近的一个项目中,我的程序在实验室测试了1个星期没有出现问题。当设备部署到现场3天后,坏事情终于发生了:设备依次出现死机问题。


   再从头分析代码, 百思不得其解,痛不欲生的时候注意到了一个编译警告,说一个表达式一直为真。原来发生了下面的错误:


    unsigned char i;


    for( i = 0; i < 1000; i++)  {.....}


    变量类型的定义导致了表达式一直为真。为什么开始的测试中不会出现问题哪?原来,这段代码是必须程序运行一段时间后才会执行的一段代码,在短时间的测试中根本不会进入。


    看来编程真不能偷懒,偷懒必遭惩罚,你还要费比当时偷懒省的劲多好多倍的劲来弥补,并且这个弥补的过程中你还要承受巨大的压力。跟平时多流汗战时少流血的道理一样的。


    3)解决办法


    给自己的编程增加一个规则,带有编译警告的代码不能交付。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1266287 2008-7-15 10:49

重视了,哈哈
相关推荐阅读
用户1008175 2010-10-19 16:53
差不多一年没有写日志了,再重新拾起来吧
去年9月份到现在都没写过,期间也很少登陆,都不像个做技术的人了。...
用户1008175 2009-09-22 16:22
PCF8563使用不当产生的问题
PCF8563具有中断输出的功能,当设置的定时器减为0的时候,int管脚电平拉低。在一个应用中,我将int管脚连接到MSP430F1611的一个引脚中断上,期望int管脚不断地产生中断。运行起来后发现...
用户1008175 2009-08-25 09:54
74HC04使用不当导致XTR111电压输出产生问题
74HC04应用不当导致XTR111电压输出问题<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office"...
用户1008175 2009-06-17 15:18
4~20mA电流输出(电流环)应用笔记
最近查了一些4~20mA输出的电路。结合自己的实践做了一下总结。大部分内容来自网上(链接见参考部分)。感兴趣的可以下载看看。...
用户1008175 2009-06-11 09:47
ATmega168的SPI发送完寄存器SPIF不置位的问题
利用ATmega168的硬件SPI驱动74HC595来扩展串行接口。把MOSI和SCK设置为输出,然后设置好寄存器。,具体如下:static void vSpi595Init(void){  DDRB...
用户1008175 2009-02-20 23:46
小问题大智慧
1,100/101跟101/102相比,哪个数大?     能快速回答上来吗?口算比较难了,但是,可以根据特点做个大胆推断,分子比分母小1,是不是相当于比较1/2和2/3谁大哪?显然是后者大。我们再用...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条