免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: prolj

你会改掉所有Warning么? [复制链接]

论坛徽章:
0
发表于 2009-12-08 18:20 |显示全部楼层
会的,肯定去把这么waring修改掉。

论坛徽章:
0
发表于 2009-12-09 09:50 |显示全部楼层
看情况,例如这个

class Bigger
{
public:
        inline bool operator()(int left, int right)
        {
                return left > right;
        }
};


sort(vec_array.begin(), vec_array.end(), Bigger());

由于内联问题,编译时一堆警告,但还是得保留下来(换成函数指针就不会有警告了,但排序10000000的vector,是这种有警告的方法9倍以上)
    1500-029: (W) WARNING: subprogram std::_Push_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger) could not be inlined into std::_Adjust_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger).
    1500-029: (W) WARNING: subprogram std::_Adjust_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger) could not be inlined into std::_Pop_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, _Ptrit<int,long,int *,int &,int *,int &>, _Ptrit<int,long,int *,int &,int *,int &>, int, Bigger, long *).

论坛徽章:
0
发表于 2009-12-09 14:04 |显示全部楼层

有机会就修改,因为warning其实很多是善意的警告,可以提早发现隐藏的错误。
如果确实不太好修改的语句,应该换种方式编写

论坛徽章:
0
发表于 2009-12-09 16:57 |显示全部楼层
会,如果项目开发比较正常的话

原帖由 peidright 于 2009-12-4 10:36 发表

有一种洁癖,又有一种dirty癖好。
要是能有一个充满warning的版本,有一个没有warning的版本,那么多好? 好淫荡。

我就是,一个版本一个warning都没有;
一个版本,好多,好多

论坛徽章:
52
码神
日期:2017-03-28 10:27:10综合交流区版块每日发帖之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-09-28 06:20:00综合交流区版块每日发帖之星
日期:2015-09-22 06:20:00每日论坛发贴之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-12 06:20:00综合交流区版块每日发帖之星
日期:2015-09-08 06:20:00综合交流区版块每日发帖之星
日期:2015-09-05 06:20:00综合交流区版块每日发帖之星
日期:2015-09-04 06:20:002015亚冠之德黑兰石油
日期:2015-09-01 10:41:53每日论坛发贴之星
日期:2015-10-11 06:20:00综合交流区版块每日发帖之星
日期:2015-10-12 06:20:00
发表于 2009-12-09 23:24 |显示全部楼层
必须的。

论坛徽章:
0
发表于 2009-12-09 23:26 |显示全部楼层
偶们公司的代码都是一堆堆的warning,出个错误要找到那个error都累死你。最后一个就是代码中用到了gets,

[ 本帖最后由 sparkzh 于 2009-12-9 23:28 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
发表于 2009-12-10 08:35 |显示全部楼层
原帖由 皇家救星 于 2009-12-9 09:50 发表
看情况,例如这个

class Bigger
{
public:
        inline bool operator()(int left, int right)
        {
                return left > right;
        }
};


sort(vec_array.begin(), vec_array.end(), Bigger());

由于内联问题,编译时一堆警告,但还是得保留下来(换成函数指针就不会有警告了,但排序10000000的vector,是这种有警告的方法9倍以上)
    1500-029: (W) WARNING: subprogram std::_Push_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger) could not be inlined into std::_Adjust_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger).
    1500-029: (W) WARNING: subprogram std::_Adjust_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, long, long, int, Bigger) could not be inlined into std::_Pop_heap<std::_Ptrit<int,long,int *,int &,int *,int &>,long,int,Bigger>(_Ptrit<int,long,int *,int &,int *,int &>, _Ptrit<int,long,int *,int &,int *,int &>, _Ptrit<int,long,int *,int &,int *,int &>, int, Bigger, long *).


啥编译器?  没有被内联的时候还会通知你?  这功能不错

论坛徽章:
0
发表于 2009-12-10 11:56 |显示全部楼层
会改掉,但根据情况,也有可能不改。
比如我有一个项目,需要同时出Windows, Linux, *BSD几个版本。有个地方需要拷贝字符串,Windows要求用strcpy_s,OpenBSD要求用 strlcpy。除了这点外,其余代码不作修改在任何一个平台上编译都没有问题。
但strcpy_s只有Windows上才有,strlcpy只有*BSD上才有,又懒得自己去写字符串的拷贝版本(1. 重复实现轮子;2. 效率不会有系统库里经过众多高手优化后的高),又不想在这写一个包装,根据不同平台条件变异(增加维护工作量)。于是索性在检查完字符串和缓冲区后,直接strcpy,然后windows disable, OpenBSD 只好置之不理了(如果OpenBSD也disable的话,话,那就得条件编译,根据不同平台disable。因为没disable的时候,NetBSD和FreeBSD没有报Warning)……

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
发表于 2009-12-10 17:57 |显示全部楼层

回复 #48 swxlion 的帖子

4996就是msvc的sb行为

论坛徽章:
0
发表于 2009-12-10 22:31 |显示全部楼层
原帖由 OwnWaterloo 于 2009-12-10 08:35 发表


啥编译器?  没有被内联的时候还会通知你?  这功能不错



xlc++ 这个功能其实不爽  过份警告又没有提供针对指定警告disable的功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP