RM新时代官方网站

嵌入式開發(fā):開發(fā)實(shí)時(shí) C++ 應(yīng)用程序的5個(gè)技巧(嵌入式開發(fā)-開發(fā)實(shí)時(shí) c 應(yīng)用程序的5個(gè)技巧是什么)

  面向?qū)ο缶幊桃殉蔀殚_發(fā)應(yīng)用程序的一種非常流行和關(guān)鍵的編程方法。雖然傳統(tǒng)的嵌入式開發(fā)大多是使用過程語(yǔ)言 C 開發(fā)的,但 C 和其他面向?qū)ο蟮恼Z(yǔ)言正慢慢開始在實(shí)時(shí)系統(tǒng)中獲得牽引力。為了確?;?C 的應(yīng)用程序不會(huì)膨脹代碼并充分利用面向?qū)ο蟮募夹g(shù),這里有5個(gè)使用 C 為基于微控制器的系統(tǒng)開發(fā)實(shí)時(shí)應(yīng)用程序的技巧。

  技巧1 – 將 constexpr 用于常量,而不是 #define

  在為實(shí)時(shí)系統(tǒng)開發(fā) C 應(yīng)用程序時(shí),constexpr 關(guān)鍵字優(yōu)于#define。constexpr 關(guān)鍵字保證是編譯時(shí)常量,并且與#define 不同,它具有明確定義的類型信息。例如,想要在 C 中創(chuàng)建版本號(hào)的開發(fā)人員可能會(huì)這樣寫:

  #define VERSION_MAJOR 1

  #define VERSION_MINOR 0

  #define VERSION_RELEASE 0

  在 C 中,首選方法如下:

  constexpr unsigned int version_major = 1U;

  constexpr unsigned int version_minor = 0U;

  constexpr unsigned int version_release = 0U;

  請(qǐng)注意,我們可以清楚地將 const 定義為 unsigned int。constexpr 關(guān)鍵字還可用于創(chuàng)建其他類型的常量,例如 int、float、數(shù)組等。

  技巧2 – 使用命名空間來(lái)組織和封裝應(yīng)用程序數(shù)據(jù)

  在 C 中,嵌入式開發(fā)人員傾向于通過使用結(jié)構(gòu)或使用預(yù)處理器來(lái)定義常量值來(lái)組織數(shù)據(jù)。在 C 中,開發(fā)人員可以通過使用命名空間來(lái)組織應(yīng)用程序數(shù)據(jù),以便對(duì)其進(jìn)行封裝、組織和易于閱讀。C 中的命名空間可以使用以下語(yǔ)法定義:

  namespace data

  {

  unsigned int mydata;

  }

  在這種情況下,命名空間是數(shù)據(jù),并且有一個(gè)成員 mydata。訪問命名空間可以通過編寫完成:

  data::mydata

  它使用范圍解析運(yùn)算符來(lái)指定 mydata 位于數(shù)據(jù)中。建議使用匿名命名空間、名稱如 data 的命名空間來(lái)創(chuàng)建局部靜態(tài)變量。

  

嵌入式開發(fā):開發(fā)實(shí)時(shí) C++ 應(yīng)用程序的5個(gè)技巧(嵌入式開發(fā)-開發(fā)實(shí)時(shí) c 應(yīng)用程序的5個(gè)技巧是什么)

  技巧3 – 在 NULL 上使用 nullptr

  C 中經(jīng)常遇到的一個(gè)問題是多個(gè)庫(kù)文件中定義了 NULL,并且每個(gè)定義不一致。這通常會(huì)導(dǎo)致混淆和使用 NULL 的潛在問題。在 C 中,定義了一個(gè)新的關(guān)鍵字 nullptr,可用于將指針分配給 null 并檢查指針當(dāng)前是否為 null。例如,

  // by default is initialized to null

  unsigned int * myptr;

  if(myptr == nullptr)

  {

  // Do something to initialize pointer

  }

  技巧4 – 使用模板

  模板允許嵌入式開發(fā)人員創(chuàng)建可應(yīng)用于不同類型數(shù)據(jù)的函數(shù)或類。這允許開發(fā)人員創(chuàng)建單個(gè)函數(shù)或類,該函數(shù)或類可以輕松地為不同的應(yīng)用程序重用和擴(kuò)展。模板可以通過在函數(shù)或類前面使用 template 關(guān)鍵字輕松創(chuàng)建,如下所示:

  template

  void myFunction(const T&)

  {

  // Perform work on T

  }

  然后可以通過執(zhí)行以下操作將該函數(shù)用于不同的數(shù)據(jù)類型:

  myFunction(1); // Passing in an int

  myFunction(3.14) // Passing in a float

  模板是一個(gè)非常強(qiáng)大的功能,可以顯著提高代碼重用和可伸縮性。

  技巧5 – 使用內(nèi)置的 bool 類型

  在 C 中使用 bool 總是感覺很棘手。嵌入式開發(fā)人員必須找到正確的庫(kù) stdbool.h,但似乎并非每個(gè)編譯器都支持該庫(kù),并且經(jīng)常迫使開發(fā)人員創(chuàng)建自己的定義。即使 bool 很容易找到,bool 也可以保存一個(gè)值,而不僅僅是簡(jiǎn)單的真假,因?yàn)樗鎯?chǔ)的不僅僅是一個(gè)位。任何 1 或更大的值都被認(rèn)為是真的。更糟糕的是,開發(fā)人員應(yīng)該使用 TRUE、True 還是 true! C 有一個(gè)內(nèi)置的 bool 類型,它只能保存 true 或 false 的值。一些非常簡(jiǎn)單的東西,它使應(yīng)用程序的編程更簡(jiǎn)單,并且可以使軟件更易于閱讀。

  結(jié)論

  希望在實(shí)時(shí)應(yīng)用程序中使用 C 的嵌入式開發(fā)人員應(yīng)該遵循更多更改和建議,但這些技巧將幫助開發(fā)人員入門。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2023年3月18日 上午10:59
下一篇 2023年3月18日 上午11:15

相關(guān)推薦

  • 十里店街道南街社區(qū):全面落實(shí)“三抓三促”行動(dòng) 推動(dòng)基層黨建工作提質(zhì)增效

    【安寧融媒體中心訊】為全面落實(shí)“三抓三促”行動(dòng),推進(jìn)基層黨建工作走深走實(shí),近期,十里店街道南街社區(qū)嚴(yán)格落實(shí)上級(jí)安排部署,全面開展“三抓三促”行動(dòng),動(dòng)員激勵(lì)廣大黨員干部堅(jiān)持干字當(dāng)頭、…

    科研百科 2023年11月4日
    163
  • 牛津大學(xué)正念中心

    牛津大學(xué)正念中心: 正念的力量與價(jià)值 正念是一種通過注意力和感知的練習(xí)來(lái)減輕壓力、焦慮和抑郁的有效方法。而牛津大學(xué)正念中心則是一個(gè)致力于推廣正念理念,提高正念技能的中心。在正念中心…

    科研百科 2024年10月11日
    3
  • 北京市科技項(xiàng)目經(jīng)費(fèi)管理辦法

    北京市科技項(xiàng)目經(jīng)費(fèi)管理辦法 為加強(qiáng)北京市科技項(xiàng)目經(jīng)費(fèi)的管理,提高科技項(xiàng)目經(jīng)費(fèi)的使用效益,促進(jìn)北京市科技事業(yè)的發(fā)展,根據(jù)《中華人民共和國(guó)預(yù)算法》和其他相關(guān)法律法規(guī),北京市制定了《北京…

    科研百科 2024年8月17日
    9
  • 地產(chǎn)項(xiàng)目管理系統(tǒng)架構(gòu)

    地產(chǎn)項(xiàng)目管理系統(tǒng)架構(gòu) 地產(chǎn)項(xiàng)目管理系統(tǒng)是房地產(chǎn)開發(fā)商進(jìn)行項(xiàng)目管理的重要工具,可以幫助開發(fā)商高效地管理項(xiàng)目,提高項(xiàng)目質(zhì)量和效率。本文將介紹地產(chǎn)項(xiàng)目管理系統(tǒng)架構(gòu),包括系統(tǒng)需求分析、系統(tǒng)…

    科研百科 2024年12月17日
    4
  • 項(xiàng)目管理讀研

    項(xiàng)目管理讀研:探索未來(lái)職業(yè)發(fā)展的途徑 隨著全球化和數(shù)字化的快速發(fā)展,項(xiàng)目管理已經(jīng)成為了企業(yè)和組織中不可或缺的一部分。在這個(gè)時(shí)代,項(xiàng)目管理讀研已經(jīng)成為了許多學(xué)生和職場(chǎng)人士追求職業(yè)發(fā)展…

    科研百科 2024年5月28日
    50
  • 錫山審計(jì):助力提升國(guó)有企業(yè)網(wǎng)絡(luò)安全和信息化建設(shè)水平

    【來(lái)源:無(wú)錫市審計(jì)局_工作動(dòng)態(tài)】 近日,錫山區(qū)審計(jì)局在區(qū)城發(fā)公司主要領(lǐng)導(dǎo)人員經(jīng)濟(jì)責(zé)任審計(jì)中,重點(diǎn)關(guān)注網(wǎng)絡(luò)安全和信息化建設(shè)情況。審計(jì)組圍繞信息化項(xiàng)目建設(shè)、信息系統(tǒng)運(yùn)行、系統(tǒng)安全管理和…

    科研百科 2022年11月8日
    346
  • 新的一年科研項(xiàng)目開展

    新的一年科研項(xiàng)目開展 隨著2022年的到來(lái),我們迎來(lái)了新的一年科研項(xiàng)目的開展。作為科學(xué)界的從業(yè)者,我們深知科研項(xiàng)目的重要性和意義,它不僅可以推動(dòng)科學(xué)技術(shù)的發(fā)展,也可以為人類的進(jìn)步和…

    科研百科 2025年2月1日
    6
  • 科研工作統(tǒng)一管理的好處

    科研工作統(tǒng)一管理的好處 隨著科技的不斷發(fā)展,科研工作已經(jīng)成為了推動(dòng)科技進(jìn)步的重要力量。然而,科研工作的統(tǒng)一管理卻面臨著諸多挑戰(zhàn)。如何有效地管理和組織大量的科研工作,避免重復(fù)勞動(dòng)和資…

    科研百科 2024年11月26日
    10
  • 國(guó)有企業(yè)廉政風(fēng)險(xiǎn)點(diǎn)

    國(guó)有企業(yè)廉政風(fēng)險(xiǎn)點(diǎn) 隨著中國(guó)經(jīng)濟(jì)的快速發(fā)展,國(guó)有企業(yè)已成為中國(guó)經(jīng)濟(jì)的重要組成部分。然而,國(guó)有企業(yè)在廉政風(fēng)險(xiǎn)方面面臨著許多挑戰(zhàn)。本文將探討國(guó)有企業(yè)廉政風(fēng)險(xiǎn)點(diǎn),并提出一些有效的解決方案…

    科研百科 2024年9月30日
    6
  • 施工進(jìn)度獎(jiǎng)懲考核辦法

    施工進(jìn)度獎(jiǎng)懲考核辦法 為了促進(jìn)施工進(jìn)度,保證工程的質(zhì)量和安全性,我們公司制定了一套施工進(jìn)度獎(jiǎng)懲考核辦法。該辦法旨在激勵(lì)員工的工作積極性,提高施工效率,確保工程按時(shí)完成。 考核指標(biāo) …

    科研百科 2024年9月24日
    3
RM新时代官方网站