广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    C语言警告-Wunused-but-set-variable的消除

    来源:网络收集  点击:  时间:2024-03-10
    【导读】:
    今天进行移植工作,以前编译好好的C语言程序,突然爆出好多警告。作为一个有洁癖的码农,不但要消灭所有的错误,还要消灭所有的警告。顺手将解决问题的方法记录下来,如果帮到你,记得顶我哦~~工具/原料moregcc4.6或以上版本测试例程方法/步骤1

    首先说下问题发生的情况,当我们在函数中定义一个变量,我们给这个变量赋初值,或者这个变量等于另一个函数调用的返回值,但是在我们的函数结束之前,这个值并没有用于使用,换句话说,这个变量是没有实际意义的,完全可以去掉不用。这种问题,gcc4.6以上的版本就会发现。而我遇到的问题也恰为此种,后面会有具体例子说明。

    遇到这个问题,我想很多人都一样,首先bai_du一下,我也是这么做的,如果找到了满意的方法,也许就没有此文了。所以我自己研究了一下。

    方法/步骤2

    再来说下问题出现的gcc版本。我自己使用的版本是4.8.2。从网上看,也有朋友使用4.6就遇到了这个。相信本文的方法可以用于4.6以上的版本。gcc –version可以查询gcc版本,如图所示:

    方法/步骤3

    为了方便解释,简单准备了一个测试程序,如下所示。如在步骤1中所说,main中的变量a,声明、赋值,但是没有实际使用,就是完全没有存在的必要。

    方法/步骤4

    这种情况下,如果我们简单用gcc编译,不加任何编译选项,那么是不会报警告的。

    方法/步骤5

    但是程序猿编码时往往都要用很多编译选项,以帮助我们发现一些明显的问题,减少后期调试的复杂度,现在我们使用-Wall来变一下,-Wall会将编译过程中遇到的警告全部列出来:

    方法/步骤6

    上面的警告显示-Wunused-but-set-variable,意思就是变量没有被使用。要是我们不想看到这样的警告,则在编译中加入 –Wno-unused-but-set-variable即可。再来编译,就不会产生warning了。

    注意事项

    gcc的这些警告本是为了帮助我们发现低级问题的,如果不让warning打印,那么必然要承担相应的风险,不过本文的这种warning只是声明未使用,并无大碍,所以一般不会造成问题。

    c语言
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_309633.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 18:57:07  耗时:0.025
    0.0248s