一個函數(shù)超過1000行,可以不?
關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容
作者 | strongerHuang
微信公眾號 | 嵌入式專欄
“一個函數(shù)的代碼盡量不要超過50行”
有些讀者可能看到過類似這樣的描述,而自己做項(xiàng)目時,很多函數(shù)都比較多(超過50行),就會懷疑自己這樣寫是不是不對?
那么,一個函數(shù)究竟能不能超過50行呢?今天就來討論下關(guān)于函數(shù)代碼行數(shù)相關(guān)的內(nèi)容。
1關(guān)于代碼行數(shù)多少的問題
2模塊化代碼行數(shù)少
這個問題好比:圖書館的書籍,為什么要分類?
因?yàn)槲覀兇a要實(shí)現(xiàn)各種各樣的功能,代碼模塊化之后,會讓我們更方便的管理、移植,以及后期的維護(hù)。
代碼模塊化是編程中的一個重要思想,有了模塊化思維,開發(fā)項(xiàng)目會讓你有事半功倍的效果。
這里可以參看之前分享的文章《嵌入式開發(fā)中的兩點(diǎn)編程思想》。
說回來,為什么模塊化代碼行數(shù)少?
代碼模塊化,就是把要實(shí)現(xiàn)的細(xì)小功能模塊,用一個函數(shù)封裝起來,也就牽涉到本文說的函數(shù)代碼行數(shù)少的問題。
你會發(fā)現(xiàn)很多底層驅(qū)動、中間層、應(yīng)用層的代碼,其實(shí)都會用到模塊化編程。
比如底層驅(qū)動庫函數(shù):


INT16U OSVersion (void){return (OS_VERSION);}
當(dāng)然,并不是所有的模塊化代碼行數(shù)都低于50行,也有100行的,也有超過200行的,但整體來說,模塊化代碼的行數(shù)相對都不多。
3多行代碼的函數(shù)

通常來說,超多行函數(shù),一般在業(yè)務(wù)邏輯應(yīng)用代碼中比較常見。
有時候,我們寫一個應(yīng)用代碼,可能不知不覺(復(fù)制粘貼)就上百行代碼了。(main函數(shù)實(shí)現(xiàn)了所有功能,是不是似存相識?)
我之前也這么干過,特意找了一下幾年前寫的代碼,上千行的一個觸摸屏處理函數(shù):

4最后
嵌入式編程專輯 Linux 學(xué)習(xí)專輯 C/C++編程專輯 Qt進(jìn)階學(xué)習(xí)專輯
關(guān)注我的微信公眾號,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
點(diǎn)擊“閱讀原文”查看更多分享。
