免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6115 | 回复: 23
打印 上一主题 下一主题

[函数] 请问大家都是怎样分析大段代码的? [复制链接]

论坛徽章:
11
摩羯座
日期:2013-09-29 17:39:09白羊座
日期:2014-11-13 09:38:14技术图书徽章
日期:2014-01-17 15:07:36狮子座
日期:2013-12-25 14:01:52技术图书徽章
日期:2013-12-17 11:33:22技术图书徽章
日期:2013-12-03 10:27:57天秤座
日期:2013-11-08 15:47:19申猴
日期:2013-10-29 13:16:32未羊
日期:2013-10-12 22:28:56辰龙
日期:2013-10-09 14:39:5515-16赛季CBA联赛之山东
日期:2016-07-25 10:23:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-19 16:17 |只看该作者 |倒序浏览
本帖最后由 superwujc 于 2012-12-19 16:22 编辑

main()调用A(),A()调用B(),B()又调用C(),每个函数都有形参,为了避免作用域冲突(应该是这个原因吧?),同一个实参,在不同函数中命名都不一样,需要一个一个对应形参,郁闷了都

烦请各位大神介绍一下经验啊!!!

多谢!

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2012-12-19 16:24 |只看该作者
怎么个冲突法?

论坛徽章:
11
摩羯座
日期:2013-09-29 17:39:09白羊座
日期:2014-11-13 09:38:14技术图书徽章
日期:2014-01-17 15:07:36狮子座
日期:2013-12-25 14:01:52技术图书徽章
日期:2013-12-17 11:33:22技术图书徽章
日期:2013-12-03 10:27:57天秤座
日期:2013-11-08 15:47:19申猴
日期:2013-10-29 13:16:32未羊
日期:2013-10-12 22:28:56辰龙
日期:2013-10-09 14:39:5515-16赛季CBA联赛之山东
日期:2016-07-25 10:23:00
3 [报告]
发表于 2012-12-19 16:28 |只看该作者
本帖最后由 superwujc 于 2012-12-19 16:55 编辑

回复 2# hellioncu

好吧,我已经被混乱了,请问怎样分析这样的代码?


   

论坛徽章:
0
4 [报告]
发表于 2012-12-19 17:07 |只看该作者
易中天说诸葛亮读书观其大略。

你看代码也要观其大略。

如果你能从一大段代码里面找出最关键的几行,you've made it!

论坛徽章:
11
摩羯座
日期:2013-09-29 17:39:09白羊座
日期:2014-11-13 09:38:14技术图书徽章
日期:2014-01-17 15:07:36狮子座
日期:2013-12-25 14:01:52技术图书徽章
日期:2013-12-17 11:33:22技术图书徽章
日期:2013-12-03 10:27:57天秤座
日期:2013-11-08 15:47:19申猴
日期:2013-10-29 13:16:32未羊
日期:2013-10-12 22:28:56辰龙
日期:2013-10-09 14:39:5515-16赛季CBA联赛之山东
日期:2016-07-25 10:23:00
5 [报告]
发表于 2012-12-19 17:13 |只看该作者
回复 4# sonicling

现在是完全没有头绪啊,自己一个人闭门造车,身边都没有可以交流的人,只好左冲右突


   

论坛徽章:
0
6 [报告]
发表于 2012-12-19 17:16 |只看该作者
理出主线(比如,可能是一个大的循环,或等待事件)
找出各支线(比如子线程,子进程,注册的事件处理函数)
从模块入手,理出层次和依赖关系
研究重要的数据结构
最后再研究实现细节
这个过程中,有条件的话可以进行测试,调试跟踪,研究日志,另外还要恶补必要的专业知识,包括计算机底层机制的,业务相关的,还有设计相关的
还有最重要的一个好的代码浏览器,比如source insight,一支笔,一张草纸

论坛徽章:
0
7 [报告]
发表于 2012-12-19 17:22 |只看该作者
只理解到 LZ遇到代码风格 和作用域方面的问题了。
一般遇到大段代码  基本只会看 每个模块的功能, 根本不会关心这些问题。

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
8 [报告]
发表于 2012-12-19 17:36 |只看该作者
晕,居然能被形参实参搞崩溃~~~~~~~~~

论坛徽章:
11
摩羯座
日期:2013-09-29 17:39:09白羊座
日期:2014-11-13 09:38:14技术图书徽章
日期:2014-01-17 15:07:36狮子座
日期:2013-12-25 14:01:52技术图书徽章
日期:2013-12-17 11:33:22技术图书徽章
日期:2013-12-03 10:27:57天秤座
日期:2013-11-08 15:47:19申猴
日期:2013-10-29 13:16:32未羊
日期:2013-10-12 22:28:56辰龙
日期:2013-10-09 14:39:5515-16赛季CBA联赛之山东
日期:2016-07-25 10:23:00
9 [报告]
发表于 2012-12-19 17:38 |只看该作者
回复 7# lrita
请教楼上2位,小弟很菜,现在还没形成自己的代码风格,如果说风格的话,目前是一股脑的堆代码,把所有功能直截了当的实现在单一函数中,而且思路中出现漏洞的几率更大,有些问题考虑的不周全(大多数情况下都是这样)

而代码的作者会把各个功能按照他本人的风格细分一下,然后实现,比如在A()中某个功能用B()来实现,而B()中的一个错误打印功能再用C()来实现
主要是想吸收一下作者的代码风格,也就是处理一个问题的思路,怎样用系统提供的调用组合成自己的函数,以及一套健壮的代码

现在即便能够把作者的代码顺下来,也就是囫囵吞枣而已,至于为什么这样写法还是不甚了解

自我感觉还是缺乏一个有效的切入点。。。




   

论坛徽章:
11
摩羯座
日期:2013-09-29 17:39:09白羊座
日期:2014-11-13 09:38:14技术图书徽章
日期:2014-01-17 15:07:36狮子座
日期:2013-12-25 14:01:52技术图书徽章
日期:2013-12-17 11:33:22技术图书徽章
日期:2013-12-03 10:27:57天秤座
日期:2013-11-08 15:47:19申猴
日期:2013-10-29 13:16:32未羊
日期:2013-10-12 22:28:56辰龙
日期:2013-10-09 14:39:5515-16赛季CBA联赛之山东
日期:2016-07-25 10:23:00
10 [报告]
发表于 2012-12-19 17:40 |只看该作者
回复 8# liuiang

好像不是这样,应该是在理顺代码的思路过程中有点混乱。。。

目前的状况是,逐字逐句的看,郁闷,不得其法

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP