首页 论坛 问答 博客
 
查看文章
 
标题:以后一定注意不能忽略编译器的警告
2008-07-14 17:55:43

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

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

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

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

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

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

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

    unsigned char i;

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

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

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

    3)解决办法

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


本文引用通告地址:http://aax1985.spaces.eepw.com.cn/articles/trackback/item/30386
类别:技术资料 | 浏览(149) 引用(0)
 
网友评论:
hyj666666(2008-07-16 13:38:21)
没错
发表评论:
姓 名: [ 登陆 ]
内 容:
验证码:
 

     
©2007 eepw.com.cn