新闻  |   论坛  |   博客  |   在线研讨会
以后一定注意不能忽略编译器的警告
张阳 | 2008-07-14 17:55:43    阅读:2755   发布文章

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

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

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

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

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

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

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

    unsigned char i;

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

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

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

    3)解决办法

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
hyj666666  2008-07-16 13:38:21 

没错

推荐文章
最近访客