天才一秒记住【燃文中文】地址:www.ranwenzw.cc
小的,而且这些代码看的令人非常的头疼。
阅读代码有两种模式:top-down 和 bottom-up。
Top-down 模式,就是先设定一个 use case,比如说打开一个文件,然后静态跟着代码看,或者用 debugger 跟着看。
这样子每次出现函数调用的时候,把函数的执行层次纪录下来。
大致如下:
func1func2funcfunc3这种图表很随意,是可以根据自己的需要增加信息。
比如有的人有时会把重要的实际参数一直标下来,这样阅读深层次代码不用再回头查形式参数到底指什么。
这个基本作用是防止在阅读深层次代码时忘记总体执行层次。
而Top-down 模式进行到一定层次,往往会发现虽然图画了出来,但还是无法了解程序再干什么。这时需要转入 bottom-up 模式,一直深入到最底层,给能了解作用的底层函数一个一个的写文档。
当然这时的文档是完全底层的观点。
然后就是不断在两个模式之间转换,不断的细化两种模式的理解。
虽然看这样子看代码会简单很多,但是还是也会一直看的人眼睛眼花缭乱。
而另一方面,在萧天接了这个悬赏不久,发布这个悬赏的人就给他发了一些消息。
天涯海角:你好,有些地方我要跟你说一下,因为我怕你看代码看的时间会很久。主要的问题就是我改了一个功能,结果总是跟预期对不上,查了代码C++的,没发现逻辑问题,然后花了几天,终于发现了关键点:有一个变量,莫名其妙在不经意间值就会变了。
天涯海角:然后我自然就开始怀疑是多线程没有保护的问题,但研究后不像,发现这个变量值跳变也不是随鸡的,总在一行特定的位置后,值就会变了,这一行特别简单,就是个简单的加法,然后跟这个加法不直接相干的另一个变量的的值就会发生变化。
天涯海角:所以就这个给我直接卡住了,我问了不少的程序员大咖都没有给我整明白,所以希望天兄能够帮我找出来哪个环节出现问题了。
天兄自然就是萧天的黑土平台的网名,毕竟黑土平台也不会让你用真名,身份证信息平台可以知道,但是没有必要让平台的用户知道,毕竟万一有人有仇,将身份信息泄露出去,那也不是一件美好的事情。
萧天看着这个天涯海角发来的消息,脑海里也是自动浮现出了一个经验知识。
这只是一个小问题罢了,但是如果没有足够的丰富经验,的的确确有很多人都能够卡在这一步而不知其路。
这个其实很简单,就是那个简单的“加法”里的+号,被重载了,IDE默认设置是单步不进入重载的操作符,所以单步总是直接跳过去了,大概这个天涯海角没有想到一个+号后面这么大一个坑。
而明白了这个之后,萧天自然也是回复了他,并且把这个应该修改的地方告诉了他。
封开市,一栋别墅之中,一个戴着眼镜,略微有些斯文的大约二十七八岁的年轻男子顿时拍了拍电脑桌面,然后从椅子上面站了起来,神色无比激动。
拍打桌面一直不停,并且口中还在喃喃自语,“是了,是了,一定是这样的,是这样的……应该不会错了……竟然这么简单……竟然会这么简单,我为什么会没有想到呢,我竟然没有往这个方面去想……”
这位年轻男子回过神来,然后看着电脑屏幕上的对话框,那个叫天天的答案还在那里显示着,他都没有去验证,自己的脑海里面过了一遍都知道这个人说的是对的,用茅塞顿开醍醐灌顶恍然大悟一点都不为过。
毕
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!