日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 技術讓夢想更偉大
[導讀]“一個函數的代碼盡量不要超過50行”

作者 | strongerHuang
微信公眾號 | 嵌入式專欄
“一個函數的代碼盡量不要超過50行”
有些讀者可能看到過類似這樣的描述,而自己做項目,很多函數都比較多(超過50行),就會懷疑自己這樣寫是不是不對。
那么,一個函數究竟能不能超過50行呢?今天就來討論下關于函數代碼行數相關的內容。

1關于代碼行數多少的問題

一個函數多少行代碼合適? 超過1000行的代碼有什么問題?
在編程的各種規(guī)范中,對函數代碼行沒有強制要求必須低于**行才行。
你一個項目所有函數都低于50行代碼,是可以的。反過來,你一個函數超過一萬行代碼(只有main函數),如果代碼沒問題,也能編譯通過,也是可以照常工作。
我們平時看到的“一個函數的代碼盡量不要超過50行”,它其實是相對代碼結構化、模塊化而言的,有很多情況,代碼也會超過50行,甚至上千行。

2模塊化代碼行數少

代碼為什么要模塊化?
這個問題好比:圖書館的書籍,為什么要分類?
因為我們代碼要實現各種各樣的功能,代碼模塊化之后,會讓我們更方便的管理、移植,以及后期的維護。
代碼模塊化是編程中的一個重要思想,有了模塊化思維,開發(fā)項目會讓你有事半功倍的效果。
這里可以參看之前分享的文章《嵌入式開發(fā)中的兩點編程思想》。

說回來,為什么模塊化代碼行數少?

代碼模塊化,就是把要實現的細小功能模塊,用一個函數封裝起來,也就牽涉到本文說的函數代碼行數少的問題。

你會發(fā)現很多底層驅動、中間層、應用層的代碼,其實都會用到模塊化編程。
比如底層驅動庫函數:



還比如RTOS模塊化代碼:
縱觀這些實現模塊化的代碼,你會發(fā)現,每個函數的代碼行數都不多,基本保持在50行一下。
甚至有的函數代碼只有一行:

INT16U OSVersion (void){ return (OS_VERSION);}

當然,并不是所有的模塊化代碼行數都低于50行,也有100行的,也有超過200行的,整體來說,模塊化代碼的行數相對都不多。

3多行代碼的函數

模塊化代碼的函數,函數一般都會低于50行。但是實際編程中,其實也有很多函數是超過50行。
比如一些復雜算法、通信協(xié)議、應用代碼等,這些函數都有可能超過50行。
這么說吧,像用到一些條件判斷if else,或者switch case,多幾個條件(比如25個),基本上這個函數代碼就超過50行了。
還有像有些函數代碼中,會用到很多局部變量,多定義幾個變量函數代碼行也會超過50行:

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

這個函數使用 if else 處理了很多觸摸按鍵信息(上百個Touch),還包含一些指令、數據解析分類,這個函數代碼行注定不會低于50行。
(當然,這個上千行的函數,肯定有優(yōu)惠的空間,減少三分之一應該沒問題)
4最后

一個函數超過1000行代碼,理論上是可以的。但實際開發(fā)中,要盡量避免“超長行函數”,盡量控制在50 ~ 80行代碼。
“超長行函數”在實際開發(fā)中也常有,如果一個函數實在太多,代碼要盡量規(guī)范法,比如:代碼命名、對齊、注釋等。
所以,一個函數代碼函數有點多,不要懷疑自己,在“壓縮”代碼行的同時,規(guī)范法代碼就OK。
 


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉