作者Dungeon (Dungeon)
看板Soft_Job
標題Re: [請益] 如何快速的看懂程式碼?
時間Thu Oct 23 22:32:59 2008
※ 引述《gogogogoooo (...)》之銘言:
: 目前剛進去工作
: 主管便把他們Team開發成品到現在的source code丟給我看
: 大概數十萬行吧 裡頭的註解非常的少 可以說是沒有
: 主管叫我自行trace code 看懂整個程式碼在幹麻
: 常常看到一大堆變數 卻完全不曉得意義為何
: 也不知道幹麼用 覺得非常的挫折
不寫註解的公司,是公司本身的問題比較大,工程師
問題比較小,公司不要求,誰想去寫那個?
舉個例子,看到一行程式:
__irq_enable();
理所當然是開啟中斷...
細找下去...看到一行
#define (IRQ_CTL & 0x2) __irq_enable();
接著你已經知道IRQ_CTL應該就是設定中斷狀態的某個咚咚,
繼續找下去可能會看到
#define IRQ_CTL 0x8000+0x2
喔,原來是base address加上各個偏移植代表不同設定區。
這時候你去翻這顆CHIP的手冊,原來就列在裡面....
其實整個系統跟硬體周邊是息息相關的,每個周邊都會有至少一本
手冊可以參考,這種東西就是看過一次設定過一次就懂的,
也不需要去重翻。就像 __irq_enable(); 這種東西如果
是你自己寫的,那麼看一輩子都會知道他是啥,既然如此,
寫的人幹嘛寫自己一定看得懂的東西?
所以我才說這是公司不要求的後果,如果公司要求呢?
他大可在一些奇怪的地方加個小註解,例如碰到
data[i]=SCIBUFRX
可以註解成
// SCIBUFRX = serial 接收緩衝區,定義請參考XX手冊SCI部分。
目前你能做的就是把所有搞不懂的變數從頭到尾追溯到
最終的文件,才會知道比較完整的架構,不然看半天還是會
一知半解的,特別是當你需要動手去修改功能的時候。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.106.105
推 areyo:trace也可以幫自己練debug功力XD 10/23 22:39
推 OnlyRD:DEFINE反了 而且這行CODE嵌在程式裡沒有用 10/25 00:59
→ Dungeon:好眼力 10/25 04:23