怎样读C语言的程序代码?

怎样读C语言的程序代码?,第1张

1 #include <stdio.h> /*引用头文件stdio.h*/

2 void main() /*主函数main*/

3 {

4 float a,局桐圆b; /*定义两浮点型变轮模量a,b*/

5 a=123456.789e5 /*给a赋值*/

6 b=a+20 /桐塌*给b运算赋值*/

7 printf("%f\n,b); /*输出b*/

8 }

第5,6行少了;

自己做函数,比如char PeekCodeChar(void *Addr)、int PeekCodeInt(void *Addr)之类的,内部实现则用汇编来实现,C主体程序在需要的时候调用这些函数就舒服多了。

阅读源代码的第一个工具,就是你手中的code base。把它编译出来,运行它,加log,试着修改一些数据和代码,看看有什么变化。

第二个重要的工具就是debugger,而debugger最重要的功能是获取call stack。在你感兴趣的use case里pause一下,在你不知道有什么用的函数里加个断点,显示出来的call stack都能让你对系统有更清晰的认识。

一顷神锋个软件系统就是一个小宇宙。别期待有什么高明的文档。要把自己当成探求自然真理的物理学家。

必须找好切入点。你要解决什么问题。是要fix bug;还是要把这个系统和其它模块集成;还是要增加新功能。物理学家没有上来就研究雀晌整个宇宙的,必须选好分支。

如果你有一个猜想,但是又和你的目标关联不太大,那就坚持这个猜想,直到出现明显反例。物理学有瞎嫌很多这样的例子,和数学不同,为了旁支猜想投入过多研究是不明智的。

如果有明显证据证明你的某个旁支猜想大错特错,你就要放弃主要目标,暂时把解决旁支猜想作为主要目标。比如,你本来以为某个结构是LRU的cache,结果发现怎么做都不对,那就先放弃原来的目标,专门研究这个结构的用途。

对于旁支猜想的不断切换,要做好自己的task stack保留。在旁支猜想解决之后,要根据结论尽快回到上次中断的任务。

复杂的软件系统更像一个动物,待久了你会了解它的脾性。有些是通过逻辑,有些是通过感觉。玩车的尚且有这种感觉,我们玩的东西比车复杂上万倍,就更不能对它缺乏感情投入。(这也是我不爱做企业开发的原因,我不爱养个爬行类当宠物,还是猫猫狗狗的亲切。)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12511494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存