首頁>科技>

  用C編寫可移植和可重用的軟件正迅速成為嵌入式軟件領域的一項重要活動。但是可移植的C代碼不是偶然發生的,它需要意圖和深謀遠慮。嵌入式開發人員可以遵循七個技巧來幫助確保他們的軟件更適合移植。

  技巧1——使用模塊級API

  定義一個模塊級API對於C代碼是否可移植至關重要。模塊級API定義了模塊做什麼以及它的輸入和輸出是什麼。

  技巧2——最小化模塊耦合

  移植代碼時,沒有什麼比試圖引入緊密耦合的代碼更痛苦的了。緊密耦合的代碼非常棒,因為它對外部C模塊的依賴性很小。然而,耦合度越大,新代碼中需要包含的模塊就越多,結果,這個過程就越長,越痛苦。緊密耦合的代碼也會導致ROM膨脹,因為不必要的代碼會隨必要的代碼一起出現。著眼於可移植和可重用代碼的開發人員應該儘量減少代碼對外部模塊的依賴。

  技巧3——封裝

  面向對象設計的關鍵概念之一是封裝。封裝可以理解為信息隱藏,其思想是,模塊開發人員應該只公開外部用戶訪問模塊行為所需的變量和函數,其他的一切都應該隱藏起來。C 中最好的封裝方式是大量使用關鍵字 static。默認情況下,函數和變量是隱式的 extern。為了幫助隱藏內部函數和變量,嵌入式開發人員可以使用靜態說明符來限制它們的範圍並從本質上隱藏數據。

  技巧4——使用ANSI-C

  許多編譯器都有內部特性或擴展旨在通過提供未在 ANSI-C 標準中定義的功能來幫助開發人員使用這些功能(其中許多使用 #pragma )的問題在於它們是特定於編譯器的。試圖從一個編譯器轉移到下一個編譯器會導致編譯器錯誤和潛在的軟件錯誤,這取決於所使用的附加功能。對可移植和可重用代碼感興趣的開發人員應該限制自己使用 ANSI-C 甚至嚴格的 ANSI-C 編譯。

  

  技巧5——定義一個C風格的指南

  在開發可移植代碼時,C風格指南的使用似乎並不重要。畢竟,開發人員永遠不知道代碼是否會被重用,如果是,代碼可能會被移植到一個風格完全不同的代碼庫中。此外,公司C風格指南往往會隨著時間的推移和員工的更替而演變。但是使用風格指南的全部意義,即使將來會有所不同,是為了確保代碼至少遵循一個共同的約定。這種約定將使代碼更容易被未來的嵌入式開發人員閱讀和理解,他們的任務是在新項目中導入代碼。

  技巧6——很好地記錄代碼

  在理想的情況下,所有代碼文檔中至少會包含五個不同的方面。第一個是一個基本的需求文檔,定義模塊首先應該做什麼。其次,應該有設計文檔和代碼模型來演示它是如何工作的。第三,應該提供原始開發人員關於實現的代碼如何工作的想法和假設。第四是關鍵參數和算法細節的列表,以及在移植或修改軟件時可能出現故障的關鍵區域。最後,實際的 C 代碼後面應該有實際的代碼註釋。一個額外的好處是收到模塊級單元測試的文檔,它們是如何執行的,以及任何相關的結果。

  技巧 7——避免位字段領域

  僅僅因為一個特性存在於C語言中,並不意味著它可以很容易地在編譯器之間移植。C標準有一些模糊的地方,編譯器供應商可以選擇如何實現標準。這些模糊的領域中最廣為人知的可能是位字段領域。編譯器有權決定位的排序位置,甚至最終位字段的字節順序。

  理論上,位字段是可以移植的,但這實際上取決於程序員打算如何使用它們。使用位操作或掩碼訪問該字段會導致兩個不同編譯器之間完全意外的行為。因此,開發人員應該確保他們完全理解C標準中的漏洞以及如何保護他們的代碼。

  結論

  在當今快節奏的開發環境中,開發可移植和可重用的C代碼正迅速成為每個嵌入式開發團隊的必須。這裡介紹的七個技巧只是冰山一角。

5
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 為什麼你的Facebook賬戶老是被封?來看看你都中了哪些招