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

  namespace data

  {

  unsigned int mydata;

  }

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

  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ò)展。模板可以通過(guò)在函數(shù)或類前面使用 template 關(guān)鍵字輕松創(chuàng)建,如下所示:

  template

  void myFunction(const T&)

  {

  // Perform work on T

  }

  然后可以通過(guò)執(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)推薦

  • 投標(biāo) 不用需求調(diào)查的項(xiàng)目

    投標(biāo)不用需求調(diào)查的項(xiàng)目 隨著市場(chǎng)經(jīng)濟(jì)的發(fā)展,越來(lái)越多的企業(yè)開始重視投標(biāo)工作的重要性。在投標(biāo)過(guò)程中,需求調(diào)查是一項(xiàng)非常重要的環(huán)節(jié),它可以幫助企業(yè)了解客戶需求,提高投標(biāo)的競(jìng)爭(zhēng)力。然而,…

    科研百科 2024年11月14日
    4
  • 套取科研項(xiàng)目基金的風(fēng)險(xiǎn)

    套取科研項(xiàng)目基金的風(fēng)險(xiǎn) 科研項(xiàng)目基金是許多研究人員和機(jī)構(gòu)的重要資源,用于支持研究項(xiàng)目的研發(fā)和推廣。然而,套取科研項(xiàng)目基金是一種潛在的違法行為,不僅會(huì)影響研究人員的權(quán)益,也會(huì)對(duì)整個(gè)社…

    科研百科 2025年4月5日
    5
  • 宏脈醫(yī)美管理系統(tǒng)如何增加項(xiàng)目

    宏脈醫(yī)美管理系統(tǒng)如何增加項(xiàng)目 隨著醫(yī)美行業(yè)的不斷發(fā)展,醫(yī)美機(jī)構(gòu)需要不斷更新和改進(jìn)他們的管理系統(tǒng),以適應(yīng)不斷變化的市場(chǎng)需求。宏脈醫(yī)美管理系統(tǒng)是一款專業(yè)的醫(yī)美機(jī)構(gòu)管理系統(tǒng),可以幫助醫(yī)美…

    科研百科 2025年7月17日
    2
  • 開源 OA

    開源OA: 讓辦公更高效 隨著數(shù)字化時(shí)代的到來(lái),辦公方式也在發(fā)生著翻天覆地的變化。傳統(tǒng)的手動(dòng)辦公方式已經(jīng)逐漸被自動(dòng)化辦公方式所取代,而開源OA則成為了現(xiàn)代辦公方式中不可或缺的一部分…

    科研百科 2024年11月5日
    8
  • wps97

    WPS 97: 一個(gè)強(qiáng)大的軟件工具 WPS 97 是一款功能強(qiáng)大的軟件工具,它可以幫助你輕松地創(chuàng)建和編輯文檔、電子表格和演示文稿。作為 Office 套件的一部分,WPS 97 提…

    科研百科 2024年11月30日
    34
  • 施工項(xiàng)目合同管理

    施工項(xiàng)目合同管理 施工項(xiàng)目合同管理是指在施工項(xiàng)目開始前,通過(guò)制定合同條款和約定,對(duì)施工過(guò)程中的權(quán)利義務(wù)進(jìn)行明確和規(guī)范,以確保施工項(xiàng)目的成功完成和支付款項(xiàng)的及時(shí)性。 施工項(xiàng)目合同管理…

    科研百科 2025年7月28日
    2
  • 戲曲科研項(xiàng)目有哪些內(nèi)容

    戲曲科研項(xiàng)目有哪些 戲曲是一門古老的藝術(shù)形式,被譽(yù)為中國(guó)的“國(guó)粹”。然而,隨著時(shí)間的推移,戲曲面臨著許多挑戰(zhàn),例如如何提高演出的質(zhì)量,如何更好地傳承經(jīng)典劇目,以及如何讓觀眾更好地欣…

    科研百科 2025年4月7日
    2
  • 學(xué)習(xí)黨的二十大精神 – 南京海事法院黨支部書記談體會(huì)(一)

    10月16日,中國(guó)共產(chǎn)黨第二十次全國(guó)代表大會(huì)在北京隆重開幕,習(xí)近平代表十九屆中央委員會(huì)向大會(huì)作報(bào)告。南京海事法院干警紛紛熱議黨的二十大報(bào)告,并通過(guò)舉辦學(xué)習(xí)會(huì)、座談會(huì)、微黨課等形式,…

    科研百科 2023年6月8日
    385
  • 問科研項(xiàng)目郵件怎么寫的

    寫科研項(xiàng)目郵件需要注意以下幾個(gè)要點(diǎn): 1. 郵件主題要準(zhǔn)確無(wú)誤,最好包括項(xiàng)目名稱、研究者姓名、郵件地址和郵件日期等信息。 2. 郵件內(nèi)容要簡(jiǎn)明扼要,重點(diǎn)突出,避免使用過(guò)多的技術(shù)術(shù)語(yǔ)…

    科研百科 2025年5月27日
    16
  • -u0026#34;簡(jiǎn)單與復(fù)雜:易度商祺和OmniPlan的項(xiàng)目管理對(duì)比-u0026#34;(羅技mu0026)

    在項(xiàng)目管理或進(jìn)度管理的過(guò)程中,經(jīng)常需要使用甘特圖來(lái)直觀展示項(xiàng)目的各個(gè)方面。盡管存在許多項(xiàng)目協(xié)作甘特圖制作軟件,但在Mac OS系統(tǒng)上,尋找一個(gè)既好用又適合的并不容易。 Excel雖…

    科研百科 2023年10月25日
    181
RM新时代官方网站