這第一種武器,應該是一個很好用,或者是比較熟悉的 ”{
tagshow(event, '%E6%BA%90%E4%BB%A3%E7%A0%81');
}" href="javascript:;" target="_self">原始碼閱讀軟體“,有了它,就可以在原始碼中穿梭自如,我使用的是kscope,自認為相當不錯的原始碼閱讀軟體,除了穿梭於原始碼之間,還有一個非常貼心的功能,就是可以產生指定函數的模組圖,包括哪些{
tagshow(event, '%E5%87%BD%E6%95%B0%E8%B0%83%E7%94%A8');
}" href="javascript:;" target="_self">函數調用了它,也包括指定的函數會調用哪些其他的函數。
第二件武器是gnu c 的預先處理擴充,很致命的一件武器,不瞭解它,幾乎是寸步難行,哪些眼花繚亂的 #define,##。。。,如果沒有掌握點gnu的擴充,那基本上就是看熱鬧。
第三件武器是 gnu c 的內嵌組合語言,如果有masm的基礎,對理解AT&T格式的彙編代碼困難不大,但當涉及到參數傳遞,My God,我只能希翼能有針對這個方面的中文手冊,所看到的,所收集的都是簡單帶過,太多的隔靴瘙癢了。
第四件武器是眼力,這似乎和代碼無關,但非常重要,我覺得如果要看大量的原始碼,必須訓練自己擁有一雙C語言模式的鷹眼,可以快速識別原始碼中的C語言文法範式,否則,就要多多問候自己的那雙明亮的眼睛,花否?
第五件武器是非常出色的理解typedef、{
tagshow(event, '%E6%8C%87%E9%92%88');
}" href="javascript:;" target="_self">指標的能力,這或許也該說是C語言文法的一種能力,閱讀原始碼,千萬別因為能看懂那些顯式的資料類型而沾沾自喜,認為掌握了C語言的精髓,而真正的競技場是typedef和指標的盤根錯節,瞭解的人可能會非常喜歡它,如果還不夠瞭解或者不太熟練,那絕對是個靜候在暗處的殺手,隨時殺掉你好不容易建立起來的閱讀原始碼的興趣。
第六件武器,硬體體繫結構和作業系統原理,這個不消說,這把大刀從來就是越磨越亮!
第七件武器,我想也是最關鍵的,有如世上的各種”名劍“,都需要”玄鐵劍“般的沉穩,”殘劍”般破荊斬棘的勇氣,”冰魄劍“般的單純,還有”越女劍“以柔化剛的韌勁,如果沒有這幾樣品質,想成為風流名劍,只能考慮”辟邪劍譜“了!