无码人妻丰满熟妇奶水区码,麻豆一区区三,亚洲日韩欧美精品综合,亚洲无码地址

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

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

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

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

  #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)建其他類(lèi)型的常量,例如 int、float、數(shù)組等。

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

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

  namespace data

  {

  unsigned int mydata;

  }

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

  data::mydata

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

  

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

  技巧3 – 在 NULL 上使用 nullptr

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

  // by default is initialized to null

  unsigned int * myptr;

  if(myptr == nullptr)

  {

  // Do something to initialize pointer

  }

  技巧4 – 使用模板

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

  template

  void myFunction(const T&)

  {

  // Perform work on T

  }

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

  myFunction(1); // Passing in an int

  myFunction(3.14) // Passing in a float

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

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

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

  結(jié)論

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

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(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)推薦

  • 軍隊(duì)科研項(xiàng)目驗(yàn)收形式

    軍隊(duì)科研項(xiàng)目驗(yàn)收: 確??蒲许?xiàng)目能夠達(dá)到預(yù)期目標(biāo) 軍隊(duì)科研項(xiàng)目驗(yàn)收是確保科研項(xiàng)目能夠達(dá)到預(yù)期目標(biāo)的重要環(huán)節(jié)。驗(yàn)收合格不僅是項(xiàng)目完成的標(biāo)志,也是項(xiàng)目成果的質(zhì)量保障。本文將從驗(yàn)收標(biāo)準(zhǔn)、…

    科研百科 2025年3月20日
    7
  • 指管裝工程項(xiàng)目管理系統(tǒng)

    指管裝工程項(xiàng)目管理系統(tǒng):提高項(xiàng)目管理效率的利器 指管裝工程項(xiàng)目管理系統(tǒng)是一種集項(xiàng)目管理、財(cái)務(wù)管理、進(jìn)度控制、資源分配等功能于一體的軟件系統(tǒng)。它能夠有效地幫助項(xiàng)目經(jīng)理和管理人員對(duì)工程…

    科研百科 2025年1月26日
    2
  • “四力”協(xié)同,讓企業(yè)合同合規(guī)管理化繁為簡(jiǎn)

    2022年8月23日,國(guó)務(wù)院國(guó)有資產(chǎn)監(jiān)督管理委員會(huì)令第42號(hào)公布《中央企業(yè)合規(guī)管理辦法》(以下簡(jiǎn)稱(chēng)《辦法》)。相比2018年發(fā)布的《中央企業(yè)合規(guī)管理指引(試行)》(以下簡(jiǎn)稱(chēng)《指引》…

    科研百科 2022年11月15日
    414
  • 科研信息管理平臺(tái)是什么(科研信息管理平臺(tái))

    科研信息管理平臺(tái)科研信息管理平臺(tái)機(jī)器人行業(yè)的工作人員規(guī)模1、收集、處理全國(guó)動(dòng)態(tài)動(dòng)態(tài)2、采購(gòu)、制訂、編排3、宣傳4、設(shè)計(jì)和施工5、攝像、維修、鑒定5、相關(guān)培訓(xùn)6、平臺(tái)維護(hù)、施工7、人…

    科研百科 2024年7月30日
    2
  • 信息項(xiàng)目系統(tǒng)管理師王勇

    王勇是一位信息項(xiàng)目系統(tǒng)管理師,他主要負(fù)責(zé)幫助公司管理其信息項(xiàng)目系統(tǒng)。這些系統(tǒng)包括客戶(hù)管理系統(tǒng),銷(xiāo)售管理系統(tǒng)和財(cái)務(wù)系統(tǒng)等,它們構(gòu)成了公司的核心信息系統(tǒng)。 作為信息項(xiàng)目系統(tǒng)管理師,王勇…

    科研百科 2025年1月26日
    1
  • 鄉(xiāng)鎮(zhèn)上怎么進(jìn)行科研項(xiàng)目

    鄉(xiāng)鎮(zhèn)上進(jìn)行科研項(xiàng)目 在鄉(xiāng)鎮(zhèn)上開(kāi)展科研項(xiàng)目是一項(xiàng)具有挑戰(zhàn)性的任務(wù),因?yàn)猷l(xiāng)鎮(zhèn)沒(méi)有足夠的資源和設(shè)施來(lái)支持大型研究項(xiàng)目。但是,鄉(xiāng)鎮(zhèn)政府可以為研究人員提供必要的支持,以促進(jìn)科研項(xiàng)目的發(fā)展。本…

    科研百科 2025年3月31日
    4
  • 上海幼兒園教科研項(xiàng)目

    上海幼兒園教科研項(xiàng)目: 探索幼兒的認(rèn)知發(fā)展 近年來(lái),隨著上海經(jīng)濟(jì)的發(fā)展和城市化進(jìn)程的加速,越來(lái)越多的家庭將孩子送到幼兒園。幼兒園成為了孩子們接受教育的重要場(chǎng)所。然而,對(duì)于幼兒園的教…

    科研百科 2025年4月28日
    2
  • 關(guān)于項(xiàng)目管理的證書(shū)的

    關(guān)于項(xiàng)目管理的證書(shū) 隨著項(xiàng)目管理在商業(yè)和工業(yè)領(lǐng)域的重要性不斷增加,越來(lái)越多的人開(kāi)始獲得項(xiàng)目管理的證書(shū)。這些證書(shū)可以幫助人們提高他們的項(xiàng)目管理技能和知識(shí),提高他們的職業(yè)競(jìng)爭(zhēng)力。本文將…

    科研百科 2024年8月16日
    4
  • 西安理工大學(xué) 科研項(xiàng)目

    西安理工大學(xué)科研項(xiàng)目 西安理工大學(xué)是一所位于中國(guó)陜西省西安市的理工類(lèi)大學(xué),擁有豐富的科研實(shí)力和經(jīng)驗(yàn)。近年來(lái),學(xué)校不斷引進(jìn)優(yōu)秀的科研項(xiàng)目和資金,為師生們的學(xué)術(shù)研究提供了良好的條件。本…

    科研百科 2025年5月25日
    1
  • 衡水市特檢院參研科研項(xiàng)目名單(衡水市特檢院參研科研項(xiàng)目)

    衡水市特檢院參研科研項(xiàng)目 衡水市特檢院是一家 dedicated to the inspection and regulation of food and drug product…

    科研百科 2024年4月5日
    99