免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zylthinking
打印 上一主题 下一主题

看到的牛比代码  关闭 [复制链接]

论坛徽章:
0
91 [报告]
发表于 2008-07-15 17:08 |只看该作者
原帖由 蓝豆 于 2008-7-15 14:08 发表



如果整个函数只有这一句 pagesize=pagesize 引用到了pagesize的话,里面说到的警告应该是:定义了变量,但没有使用;


我用gcc试过,没有任何警告

论坛徽章:
0
92 [报告]
发表于 2008-07-15 17:54 |只看该作者
原帖由 davycu 于 2008-7-15 17:08 发表


我用gcc试过,没有任何警告

可能是我没说清楚,我的意思是说,如果整个函数中除了这一句
pagesize=pagesize引用了pagesize这个变量外,其他地方在定义后没有再引用的话,那么使用这句话的用意有可能是临时为了避免编译器的警告;
不知你添加选项-Wall没有,我添加了选项-Wall后会有提示:

test.c: In function ‘main’:
test.c:9: 警告:未使用的变量 ‘i’
test.c:8: 警告:未使用的变量 ‘ret’
test.c:7: 警告:未使用的变量 ‘cnt’

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
93 [报告]
发表于 2008-07-15 18:09 |只看该作者
原帖由 r2007 于 2008-7-15 13:29 发表

对一个口的读写,对应控制器的不同寄存器。


硬件就不懂了

论坛徽章:
0
94 [报告]
发表于 2008-07-15 19:12 |只看该作者
原帖由 shenbo7 于 2008-7-15 16:49 发表
很正常,临时要去掉什么功能,时间又紧,领导又在催,客户又在叫,而且女朋友在要分手;
关键是,离职报告和面试通知就在这堆讨厌的代码下面的抽屉里;

他可够惨。。

论坛徽章:
0
95 [报告]
发表于 2008-07-15 21:07 |只看该作者

回复 #81 zylthinking 的帖子

1. 我遇到的代码在运行环境出诡异错误需要调试的时候大概比你多得多
  这个很有可能
2. 且别说现代调试器能够直接定位到出错的指令处, 就算是定位不到, 用初始化变量协助判断也是吃力不讨好, 我还有些好奇什么叫函数栈破坏, 我还似乎没有对初始化变量有什么意见, 如果有这个错觉, 请重新看代码去, 你还不足以一次就能看出问题所在。
  唉,天才,不管是现代还是古代寄存器要定位指令,都要靠ip去对应源代码阿。如果你的frame甚至寄存器窗口已经被写坏了呢?有没有试过where打出来的东西都不准确的时候?
  有些时候自己和客户都无法重现,甚至也没有core,那只好dump内存出来看。用初始化的值就不是讨好与否的问题了。多一点线索线也是好的。
3. pagesize = pagesize能避免老编译器警告, 恩, 很好很强大, 什么编译器呢, 什么警告呢?
    唉,当我没说吧。
4. 返回前pagesize的检查赋值是什么意思,  还溢出写呢, 编译原理貌似学的傻了, 操作系统更是一窍不通
   我是指“return前那次对pagesize的检查及超出时的重新赋值”,ok了?
   既然lz这么说,我假定你对溢出写很熟悉了。那你应该知道变量的值除了通过主动赋值外,还可能被越界改写。你还坚持这样的代码毫无意义么?
   呃...此外,我不太明白这个问题和编译/OS有什么关系

最后一点意见,也许我的观点不对,但至少提了一些不同的思路。也许有人可以从中受益,虽然也可能是地球人都知道的老生常谈。
是否可以请问一下你的原贴/回帖,能让大家有什么收获么?除了让大家觉得你像一个愤青

就此为止吧,不会再回帖子了。为了争吵浪费时间,我太无聊了。

不好意思,也浪费大家的时间了。bye

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
96 [报告]
发表于 2008-07-15 22:55 |只看该作者
原帖由 zylthinking 于 2008-7-11 13:46 发表
几行代码阿, 出这么多问题, 要是单单这一个函数也就罢了, 现在妈的3万7千多行, 差不多全是这鸟样子, 现在看得想吐。



呵呵,不至于这样吧。那以前写代码的人也太。。。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
97 [报告]
发表于 2008-07-15 23:57 |只看该作者
原帖由 春日 于 2008-7-15 21:07 发表
1. 我遇到的代码在运行环境出诡异错误需要调试的时候大概比你多得多
  这个很有可能
2. 且别说现代调试器能够直接定位到出错的指令处, 就算是定位不到, 用初始化变量协助判断也是吃力不讨好, 我还有些好奇什么 ...


开这帖子自然是展示目的, 至于为什么展示, 不好意思, 还真没有让人受益的想法, 思想很不伟大。
至于你一副公允样子, 一开始就 "指责别人总是比较容易的", 虽然公允, 我还是感觉被教训了, 不许我还口么, 我还是要还口, 因为你又说我愤青了, 不想争吵就别人身攻击, 即便攻击也要找到让人信服的理由, 你有理别说一句, 随便你说什么我都认; 拿几条谁说谁有理的条款作论据进行攻击, 攻击完居然还说 我再也不说了, 我这样很无聊, 你要真觉得无聊就不会回这个贴了, 回完了说无聊了, 装什么清高阿

1, 3那就放一边, 开始2, 4

2. 我是不是可以理解你的意思是ip被破坏了?
ip 能被破坏, esp,  ebp 就是保险箱? 我也没说别的吧, 我说的是 “用初始化变量协助判断也是吃力不讨好", 貌似初始化变量就一般目的来说不过是因为有助于防止程序员疏忽大意而推荐的一种编码方式, 有助于debug, 我还没看出有多少实用性, 理论上的可能我不管, 理论上我可以天天500万

4. 你注意到pagesize是栈上分配的么, 别说返回后无任何意义了, 就算不是栈上的, 为了防止溢出写, 为什么不写个无限循环不断重新赋值呢, 毕竟你一停它就有可能又一次 “溢出写”了, 有这样编码以避错的吗? 你干吗不写

     i = 2;
LABEL:
    if(i != 2){
         i = 2;
        goto LABEL;
      }

这样的代码呢, 任何事都可以搬出伟大的理由, 上面代码不好么, 我告诉你, 这个代码有用的很, 可以检测cpu的电路出错。
没有什么错误是不可重现的, 如果有一个错误不可重现, 我还不找了, 反正不会再重现。


至于OS/编译原理, 我之前没理解你什么意思, 所以自以为是瞎说了一句, 你也不必理解我什么意思了, 放一边吧

[ 本帖最后由 zylthinking 于 2008-7-16 00:16 编辑 ]

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
98 [报告]
发表于 2008-07-16 00:29 |只看该作者
声明阿, 我这个帖子只是发泄贴, 可不是讨伐贴
不过我可喜欢吵架了,

论坛徽章:
0
99 [报告]
发表于 2008-07-16 09:35 |只看该作者
哈哈,有意思
做个标记,继续跟

论坛徽章:
0
100 [报告]
发表于 2008-07-16 10:06 |只看该作者
比我维护的代码好看多了。

楼主你就幸福吧。

我维护的差不多有10w行代码,那叫一个乱。所有该犯的错误
他都犯了。TMD,维护它,我吐了半年。
现在练出来了,TMD,我发现在我现在写代码比他还要乱。

维护代码,就和下棋一样。和臭棋篓子下,越下越臭。维护差的代码,时间一长,也好不到哪里去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP