常见warning的处理方法

 

     最近,处理一个中间件中所有的warning,经过编译发现警告信息多如牛毛,而且这个中间件还是一个国内绝对一流的公司做的,要是一直这样下去,不知道中国的软件什么时候才能够达标啊!!!

 

     下面对出现的警告简单的总结一下:

     1、赋值类型不符,这也是最常见的;

      解决办法可以强制类型转换

 

      2、实参形参类型不一致;

       解决办法可以强制类型转换。

 

      3、隐式调用函数,连接了库,但没有连接相应的头文件;

       解决办法可以用extern引入函数原型。

 

       4、条件判断中的赋值,这个比较隐晦,一般不容易找出,下面举例说明一下;

        int pre_flag = 0, cur_flag = 1;

        if (pre_flag = cur_flag) 

                  ...

        上面if语句看似没有什么问题,但在gcc编译的时候会报警告(warning: suggest parentheses around assignment used as truth value),

这是由于gcc编译器为了提醒程序员在条件判断中,要注意“==”和“=”的区别,即编译器会以为你错将“==”写成“=”了,于是提醒一下。

因为在c语言中,条件判断只有两个值:非真(0)和真(!0),所以上面if语句我们应该修改为if ((pre_flag = cur_flag)),总之在条件判断时,一定要谨慎。

 

       5、上面几种的组合;

 

        好像还处理了其他类型的warning,但一时记不起来了,有时间再补上,也希望大家把自己遇到的warning也贴上,大家共同学习,

最后,希望大家一起努力将代码写得更规范,将warning当成error处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值