近期接手一个开源代码,需要读懂源码方便后期移植,代码量巨大(I5内核 编译一个多小时),而且内容非常有专业性(医学类),看了一天,没看出个所以然来。
尝试过调试时一条语句一条语句的读(同时看参数和返回值),但是函数封装了很多层,看的有点懵了。大家在阅读这种代码量非常庞大的源码时,一般采用什么方法?
目前我的办法真的就是只有死磕了。
引用: 吾妻思萌 发表于 2023-5-6 07:16 封装嵌套很多,不管他 看入口出口 当成黑箱 先找到整体的,说实话小的函数里内部的有各种纠偏和防呆的冗余 ...
是的,有些函数套了很多层,但是调用的是同一个函数。估计就是为了好移植。
引用: damiaa 发表于 2023-5-6 09:21 第一步先理清框架吧。 这样才能分层去看代码。有些代码无需修改部分理解一下大概功能就行。 ...
嗯嗯,现在通过例程在整理框架
引用: 秦天qintian0303 发表于 2023-5-6 10:32 黑盒模式,在分模块理解,在细分,一步一步的
只能这样了,不过能调试有些地方理解的还是快一些~
引用: wangxiangtan2 发表于 2023-5-6 10:58 咋看,带着问题看,
这个也是个方法~
引用: wangerxian 发表于 2023-5-6 10:51 只能这样了,不过能调试有些地方理解的还是快一些~
能调试其实也是按照这个步骤去理解,有一些底层其实是不需要了解那么透彻的,都是需要和功能需求关联的
引用: 秦天qintian0303 发表于 2023-5-7 21:50 能调试其实也是按照这个步骤去理解,有一些底层其实是不需要了解那么透彻的,都是需要和功能需求关联的
目前只了解一些API函数的功能,没去了解底层是如何实现的。
引用: wangerxian 发表于 2023-5-8 08:56 目前只了解一些API函数的功能,没去了解底层是如何实现的。
读别人代码是最痛苦的,我一般读懂后还会重新写一遍
引用: 秦天qintian0303 发表于 2023-5-8 16:52 读别人代码是最痛苦的,我一般读懂后还会重新写一遍
我就不指望重写了,能用上就行了。
引用: freebsder 发表于 2023-5-14 15:36 死磕也不失为一个好办法
死磕是最后的出路了,目前死磕的还行,嘿嘿~