亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1053 | 回復(fù): 0
打印 上一主題 下一主題

怎樣讀代碼? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-10-05 11:15 |只看該作者 |倒序?yàn)g覽
做程序必不可少的是要讀代碼,可是怎樣讀代碼呢?
你為什么要讀代碼?
A.了解功能是怎樣實(shí)現(xiàn)的  B.提高代碼閱讀能力,進(jìn)一步提高編程能力
方法:
1.首先要了解你所讀的代碼要實(shí)現(xiàn)的功能?
2.你能在現(xiàn)有的環(huán)境下編譯運(yùn)行嗎?
3.嘗試調(diào)試
調(diào)試時(shí),調(diào)用棧很重要,通過(guò)調(diào)用棧,你可以了解程序的執(zhí)行流程。
具體代碼的閱讀
1.文件  
了解閱讀代碼的組織方式,哪些文件實(shí)現(xiàn)怎樣的功能?
代碼是怎樣的風(fēng)格?
2.函數(shù)
對(duì)于短函數(shù),不必了解過(guò)多,一般功能簡(jiǎn)單,可以直接看
長(zhǎng)函數(shù),一般由好幾個(gè)短函數(shù)組成,首先了解短函數(shù)實(shí)現(xiàn)的功能,再了解長(zhǎng)函數(shù)?
有些函數(shù)可以通過(guò)函數(shù)名來(lái)了解函數(shù)功能,可以跳過(guò),若感覺(jué)奇怪可以回頭再看
適當(dāng)跳過(guò)一些錯(cuò)誤處理,專(zhuān)心看正常流程,不要被細(xì)枝末節(jié)耽誤了
人的智力是有限的,每次只能處理一件事情,可以從不同層次上看問(wèn)題,記住函數(shù)實(shí)現(xiàn)的
功能,了解大的程序是如何由小模塊組合起來(lái)的。然后,小模塊又是怎樣實(shí)現(xiàn)功能的。
除非你想了解其中的小模塊的功能實(shí)現(xiàn),否則只要了解該模塊實(shí)現(xiàn)的功能就可以了。人的
智力和記憶力是有限的。我們做事情的時(shí)候要專(zhuān)心的做好要做的事情,不要考慮太多的。例如可以
在總體上考慮,得出一個(gè)計(jì)劃,然后按照計(jì)劃執(zhí)行,并且根據(jù)執(zhí)行的情況和當(dāng)前的實(shí)際調(diào)整
計(jì)劃。當(dāng)執(zhí)行的時(shí)候不需要也沒(méi)有精力考慮計(jì)劃的變化,我們所要做的就是把當(dāng)前要做的事情
做好就可以了。
借助一些工具來(lái)看代碼,如sourceinsight vim+ctags+cscope等。
可以看看網(wǎng)上有沒(méi)有讀代碼的心得什么的。
3.具體細(xì)節(jié)問(wèn)題
變量要了解其代表的意義,有意義的東西才容易理解記憶。
數(shù)組要了解其下表表示什么,其元素值是什么意思。
循環(huán)語(yǔ)句了解循環(huán)的初始狀態(tài)是什么,狀態(tài)怎樣變化,結(jié)束條件是什么,
在每一步都實(shí)現(xiàn)了怎樣的功能。
判斷語(yǔ)句了解判斷條件是什么意思,還有在不同情況下處理方式有哪些不同。
c語(yǔ)言函數(shù)指針,這個(gè)一般出現(xiàn)在結(jié)構(gòu)體中,這些函數(shù)指針起到c++中虛函數(shù),一般在初始化時(shí),會(huì)賦值。
4.有時(shí)候會(huì)突然想要了解一個(gè)函數(shù)的具體實(shí)現(xiàn),怎樣找到這個(gè)函數(shù)?
A.首先用代碼閱讀工具來(lái)找,通常代碼閱讀工具都能夠找到
B.在有些情況下代碼閱讀工具找不到:如奇怪的宏定義,符號(hào)連接##語(yǔ)法,特殊前綴。
對(duì)于這些特殊的語(yǔ)法,可以考慮用硬搜索的方法,或者猜測(cè)。一旦了解了各個(gè)文件都實(shí)行
了怎樣的功能,我們就可以猜測(cè)函數(shù)可能在哪里實(shí)行,到具體的文件中找要容易一些。
隱藏在函數(shù)接口背后的?
一般通過(guò)函數(shù)名和函數(shù)參數(shù)可以猜測(cè)函數(shù)功能。然而有些東西看不到,如:
A.static extern 變量
B.結(jié)構(gòu)體變量,結(jié)構(gòu)體變量通常元素較多,很難了解所有的元素意義,并且當(dāng)前函數(shù)可
能只用到其中的幾個(gè)元素,且當(dāng)前結(jié)構(gòu)體中的某些元素還沒(méi)有初值,有值也是沒(méi)有意義的。如果元素
包含指針,該指針指向其他的結(jié)構(gòu)體,那么有需要了解他指向的結(jié)構(gòu)體。我們需要的就是,
根據(jù)函數(shù)用到的那些元素,補(bǔ)全函數(shù)接口。
了解函數(shù)變量的作用域可以了解函數(shù)或變量的影響力
舍棄的重要性
對(duì)于大函數(shù),閱讀時(shí)一定要注意舍棄小函數(shù)的閱讀,只要該小函數(shù)不影響閱讀,可以直接跳過(guò),如果
不這樣做,將耗費(fèi)大量的腦力,而且效果不好

本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/36646/showart_2064310.html
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP