【源码判断是否开源】【美容会所进口燕窝溯源码】【微信群好友导出源码】agg源码解析

时间:2024-12-23 04:11:30 编辑:jbolt开发平台 源码 来源:同城跑腿开发源码

1.如何学习别人的程序代码

agg源码解析

源码判断是码解否开源

如何学习别人的程序代码

源码判断是否开源

       å¦‚何学习别人的程序代码

        åªè¦æ˜¯ä¸ªç¨‹åºå‘˜å°±ä¼šçœ‹ä»£ç ï¼Œä½†æ˜¯å¾ˆå¤šäººï¼ŒåŒ…括我在内,在看一些开源代码的时候往往一头雾水,不知从何看起。

源码判断是否开源

           è¶Šæ˜¯ç»“构好的代码,如果不理解它的思想越是难得看懂,例如Qt、Agg、CryptPP等。这里我将我的一些经验写在这里,留个记录吧。

源码判断是否开源

           å®Œå–„的开源工程都会有文档,即使没有文档也应当有api-guid,那么我们先找到它们,这时我们不要管它是怎么设计的,先编译一个,照着例子写个程序运行一下吧,再试试一些高级功能。这时我们在心中先猜猜它应当是怎样设计的(大多数情况是没有想法)。好吧,我们再来看文档,文档中一般有静态结构的说明,如模块划分、类列表、每个类的成员列表。嗯,还是一头雾水啊,没办法,我们打开源码所在的文件夹,看看源码的组织方式。嗯,有点头绪了,大多数情况下,目录结构与工程结构是一致的,而我们编写例子程序的时候使用的接口一般在源码的include目录下。那好吧,我们根据头文件名和目录结构去找相应的实现文件吧,但这往往相当困难,因为你会发现它根本就不是你所想的那样。一个类或一个外部变量,你想找到它往往会动用Windows的搜索。看了几个小时还没有太大的进展,仍然不知道它的头(高层的入口)在哪,尾(底层的具体实现)在哪,不过你至少对那些地方有哪些文件都熟悉了,那些零星的注释也被你看了一遍。这时该把你写的例子程序拿出来了,我们单步跟进去,跟的同时我们也注意一下所跟到的文件的物理位置、它附近都有哪些文件、哪些类或结构。一直跟下去,这样我们往往会顺藤摸瓜找到最底层的实现,并发现一条执行路径(太变态的或用了一堆模板的除外)。由于你已经对工程的结构有了一定了解,这时你可以从头和尾一起开始看代码(前提是你已经找到了一个头和一个尾),将一条线弄清楚,那么这个工程的其他线也应该是差不多的设计思路。

源码判断是否开源

           æœ‰äº›å¼€æºå·¥ç¨‹é‡Œé¢çš„宏特别多,那你要当心,首先搞清楚这些宏吧。

源码判断是否开源

           ç”¨C写的工程往往比用C++写的容易懂,因为它最多有很多函数指针和extern变量,而后者则令人头疼得多,如果你实在没有办法,那么上网搜吧,很多著名的开源工程一般会有一些人将其研究心得放到blog上,看一看,说不定一下豁然开朗。

源码判断是否开源

           å¥½å§ï¼Œå°±å†™è¿™ä¹ˆå¤šï¼ŒçœŸæ˜¯ä¹±ä¸ƒå…«ç³Ÿã€‚

源码判断是否开源

源码判断是否开源