日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

對于嵌入式開發(fā)人員來說,編寫可重用、可移植且經(jīng)得起時間考驗的軟件至關(guān)重要。下面是在C中創(chuàng)建和使用可移植類型的7個技巧。

技巧1 – 使用stdint.h

使用內(nèi)置數(shù)據(jù)類型會導(dǎo)致不同編譯器之間的可移植性問題。C標(biāo)準(zhǔn)沒有指定整數(shù)的存儲大小,這導(dǎo)致一些編譯器供應(yīng)商使用2或4個字節(jié)來存儲整數(shù),結(jié)果可能是災(zāi)難性的。

使用內(nèi)置數(shù)據(jù)類型的安全替代方法是使用stdint.h固定寬度整數(shù)。這些數(shù)據(jù)類型uint8_t、int8_t、uint16_t、int16_t、uint32_t和int32_t指定存儲數(shù)據(jù)所需的存儲位數(shù)。移植這些數(shù)據(jù)類型中的任何一種都會在任何編譯器中導(dǎo)致相同的行為,并且不會導(dǎo)致四個字節(jié)的存儲突然變成兩個字節(jié)。

技巧2 – 使用stdbool.h

開發(fā)人員有時可能會決定他們想要一種可以存儲簡單的真或假值的數(shù)據(jù)類型。通過包含stdbool.h,可以將標(biāo)準(zhǔn)布爾數(shù)據(jù)類型及其真或假定義引入到項目中。

提示3 – 不要自定義定義 TRUE、FALSE、bool

在上一個技巧中,推薦使用標(biāo)準(zhǔn)庫文件 stdbool.h。一些嵌入式開發(fā)人員可能沒有意識到 stdbool 的存在,或者可能決定不使用它。相反,他們自定義定義 bool、true 和 false。這樣做的問題是,當(dāng)移植具有自定義版本的代碼時,可能會發(fā)生不匹配,即嘗試重新定義 true、false 和 bool 并且編譯器會抱怨。不要創(chuàng)建自己的版本,只需遵循技巧2。

技巧4 – 遠(yuǎn)離自定義整數(shù)類型

使用 typedef 創(chuàng)建簡潔明了的類型名稱是編寫嵌入式軟件的好方法。當(dāng)開發(fā)人員開始定義看起來非常接近標(biāo)準(zhǔn)整數(shù)類型的非標(biāo)準(zhǔn)整數(shù)類型時,問題就出現(xiàn)了。例如,取下面的自定義類型

typedef volatile uint16_t vuint16_t;

在軟件中看到 vuint16_t 會令人困惑。v是什么? 混淆 volatile 關(guān)鍵字可能很危險! 不應(yīng)該強迫開發(fā)人員編寫 volatile 以便閱讀代碼的開發(fā)人員知道該變量是 volatile 嗎? 讀取 vuint16_t 很容易被誤讀為 uint16_t 或更糟糕的是,嵌入式開發(fā)人員可能會意外鍵入 uint16_t 并完全錯過 v。

堅持使用標(biāo)準(zhǔn)類型,并在任何閱讀或維護(hù)代碼的人面前直接使用 volatile 等重要關(guān)鍵字。

技巧5 – 自定義類型應(yīng)該有 _t

定義自定義類型時,使用 _t 來匹配固定寬度的整數(shù)類型,它簡單明了。以以下為例;

typedef enum

{

STATE_1,

STATE_2

}State_t;

很明顯,State_t 是一個 typedef。

技巧6 – 使用枚舉自定義類型

創(chuàng)建類似于技巧5中所示的自定義數(shù)據(jù)類型可以大大提高嵌入式軟件的可讀性和可維護(hù)性。在#define 定義上使用枚舉有很多優(yōu)點。enum 的使用易于維護(hù),移植(甚至到 C++)和 enum 將顯示在調(diào)試器監(jiān)視窗口中。對枚舉進(jìn)行類型定義的能力是 C 語言中非常強大的工具,因此請明智地使用它!

技巧7 – 不要混淆底層類型

使用 typedef 的危險之一是很容易混淆底層類型。例如,如果新類型未正確命名,則結(jié)構(gòu)的 typedef 可以隱藏數(shù)據(jù)是結(jié)構(gòu)的事實。嵌入式開發(fā)人員應(yīng)該能夠閱讀和識別數(shù)據(jù)的底層類型,而無需搜索文檔或源代碼。回顧技巧4,用 v 掩蓋 volatile 是相同的想法,生成的數(shù)據(jù)類型需要以簡潔明了的方式清楚地表明它所代表的內(nèi)容

分享到:
標(biāo)簽:嵌入式 開發(fā)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定