精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在嵌入式C編碼中規(guī)范變量

麥辣雞腿堡 ? 來(lái)源:嵌入式系統(tǒng) ? 作者:嵌入式系統(tǒng) ? 2023-12-07 14:42 ? 次閱讀

◎ 不用或者少用全局變量
說(shuō)明:?jiǎn)蝹€(gè)文件內(nèi)部可以使用static的全局變量,可以將其理解為類(lèi)的私有成員變量。全局變量應(yīng)該是模塊的私有數(shù)據(jù),不能作用對(duì)外的接口使用,使用static類(lèi)型定義,可以有效防止外部文件的非正常訪(fǎng)問(wèn)。直接使用其他模塊的私有數(shù)據(jù),將使模塊間的關(guān)系逐漸走向“剪不斷理還亂”的耦合狀態(tài),這種情形是不允許的。
◎ 避免局部變量與全局變量同名。
說(shuō)明:盡管局部變量和全局變量的作用域不同而不會(huì)發(fā)生語(yǔ)法錯(cuò)誤,但容易使人誤解。
◎ 嚴(yán)禁使用未經(jīng)初始化的變量。
◎ 明確全局變量的初始化順序,避免跨模塊的初始化依賴(lài)。
說(shuō)明:系統(tǒng)啟動(dòng)階段,使用全局變量前,要考慮到該全局變量在什么時(shí)候初始化,兩者之間的時(shí)序關(guān)系,誰(shuí)先誰(shuí)后,一定要分析清楚,不然后果往往是低級(jí)而又災(zāi)難性的。
◎ 數(shù)據(jù)必須對(duì)外開(kāi)放時(shí),應(yīng)封裝接口函數(shù)來(lái)讀寫(xiě),同時(shí)注意全局?jǐn)?shù)據(jù)的訪(fǎng)問(wèn)互斥。
說(shuō)明:避免直接暴露內(nèi)部數(shù)據(jù)給外部模型使用,是防止模塊間耦合最簡(jiǎn)單有效的方法。
◎ 一個(gè)變量只有一個(gè)功能,不能把一個(gè)變量用作多種用途。
說(shuō)明:一個(gè)變量只用來(lái)表示一個(gè)特定功能,不能把一個(gè)變量作多種用途,即同一變量取值不同時(shí),其代表的意義也不同。
◎ 數(shù)據(jù)結(jié)構(gòu)功能單一,不要設(shè)計(jì)面面俱到的數(shù)據(jù)結(jié)構(gòu)。
說(shuō)明:相關(guān)的一組信息才是構(gòu)成一個(gè)結(jié)構(gòu)體的基礎(chǔ),結(jié)構(gòu)的定義應(yīng)該可以明確的描述一個(gè)對(duì)象,而不是一組相關(guān)性不強(qiáng)的數(shù)據(jù)的集合。設(shè)計(jì)結(jié)構(gòu)時(shí)應(yīng)力爭(zhēng)使結(jié)構(gòu)代表一種現(xiàn)實(shí)事務(wù)的抽象,而不是同時(shí)代表多種。結(jié)構(gòu)中的各元素應(yīng)代表同一事務(wù)的不同側(cè)面,而不應(yīng)把描述沒(méi)有關(guān)系或關(guān)系很弱的不同事務(wù)的元素放到同一結(jié)構(gòu)體中。
◎ 盡量減少?zèng)]有必要的數(shù)據(jù)類(lèi)型默認(rèn)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換。
說(shuō)明:當(dāng)進(jìn)行數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換時(shí),其數(shù)據(jù)的意義、轉(zhuǎn)換后的取值等都有可能發(fā)生變化,而這些細(xì)節(jié)若考慮不周,就很有可能留下隱患。
示例:如下賦值,多數(shù)編譯器不產(chǎn)生告警,但值的含義有變化。

char ch; 
unsigned short int exam;  
ch = -1;
exam = ch; // 編譯器不產(chǎn)生告警,此時(shí)exam為0xFFFF。

◎ 確認(rèn)未使用的變量應(yīng)當(dāng)刪除。
◎ 對(duì)于變量自增++和自減--,禁止在宏定義中使用,禁止和其他語(yǔ)句復(fù)合,因拆分單獨(dú)執(zhí)行。示例:if(++i>10) 錯(cuò)誤寫(xiě)法,必須改為i++;if(i>10)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18821

    瀏覽量

    298591
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    915

    瀏覽量

    54651
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    607

    瀏覽量

    28257
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式c語(yǔ)言編碼規(guī)范

    `學(xué)習(xí)嵌入式的同學(xué)應(yīng)該首先掌握嵌入式編碼規(guī)范,這樣才能更好的嵌入式系統(tǒng)。下面就從這幾個(gè)方面講解一下嵌入式
    發(fā)表于 10-31 14:50

    嵌入式c語(yǔ)言編碼規(guī)范

    學(xué)習(xí)嵌入式的同學(xué)應(yīng)該首先掌握嵌入式編碼規(guī)范,這樣才能更好的嵌入式系統(tǒng)。下面就從這幾個(gè)方面講解一下嵌入式
    發(fā)表于 11-07 15:17

    嵌入式Linux C代碼規(guī)范

    本文檔為作者 在嵌入式嵌入式 linux C語(yǔ)言的學(xué)習(xí)和工作中所總結(jié)的代碼規(guī)范 ,是作者從 STM32單片機(jī)開(kāi)發(fā)向 Linux C開(kāi)發(fā)的時(shí)
    發(fā)表于 01-14 10:25

    (精彩帖子合集)國(guó)外大牛帶你入門(mén)嵌入式C語(yǔ)言!

    語(yǔ)言學(xué)習(xí)文章,大家循序漸進(jìn),必定能夠?qū)W有所成! 嵌入式應(yīng)用程序的C編程語(yǔ)言簡(jiǎn)介了解C編程變量了解C
    發(fā)表于 09-09 16:09

    WIFI網(wǎng)卡如何在嵌入式Linux

    僅用于增加百度收錄權(quán)重,排版未優(yōu)化,日常不維護(hù)。請(qǐng)?jiān)L問(wèn): 查看、評(píng)論。本博文對(duì)應(yīng)地址: 嵌入式Linux——WIFI網(wǎng)卡/#more如何在嵌入式Linux,使用WIFI無(wú)線(xiàn)網(wǎng)卡。
    發(fā)表于 11-04 08:26

    嵌入式C的靜態(tài)變量是什么

    不是持續(xù)長(zhǎng)久的,當(dāng)程序使用完后,系統(tǒng)會(huì)自動(dòng)刪除回收在嵌入式系統(tǒng),為了追求項(xiàng)目的可靠性,因此會(huì)較常使用靜態(tài)變量。靜態(tài)變量的基本劃分靜態(tài)變量
    發(fā)表于 12-15 07:08

    嵌入式C開(kāi)發(fā)變量類(lèi)型的使用方法

    了所以嵌入式編程中經(jīng)常會(huì)使用char定義變量,注意:char只能表示-128到127,unsigned char可以表示0到255。下面是嵌入式常用的typedef定義的數(shù)據(jù)類(lèi)型typedef...
    發(fā)表于 12-15 06:35

    何在嵌入式設(shè)備上運(yùn)行高性能Java

    何在嵌入式設(shè)備上運(yùn)行高性能Java
    發(fā)表于 03-28 09:43 ?16次下載

    嵌入式DHCP Server如何在vxWorks

    嵌入式DHCP Server如何在vxWorks的軟件實(shí)現(xiàn)
    發(fā)表于 03-29 12:27 ?23次下載

    嵌入式C實(shí)現(xiàn)延時(shí)程序的不同變量的區(qū)別 幾種Linux嵌入式開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹

    嵌入式C實(shí)現(xiàn)延時(shí)程序的不同變量的區(qū)別 幾種Linux嵌入式開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹 ARM嵌入式開(kāi)發(fā)基礎(chǔ) 對(duì)話(huà)微軟MVP:走進(jìn)
    發(fā)表于 04-14 07:24 ?1568次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>實(shí)現(xiàn)延時(shí)程序的不同<b class='flag-5'>變量</b>的區(qū)別 幾種Linux<b class='flag-5'>嵌入式</b>開(kāi)發(fā)環(huán)境的簡(jiǎn)單介紹

    嵌入式系統(tǒng)的規(guī)范發(fā)展回顧

    后PC時(shí)代,嵌入式系統(tǒng)的發(fā)展風(fēng)起云涌,波瀾壯闊。在這一歷史洪流,眾多的嵌入式系統(tǒng)規(guī)范爭(zhēng)奇斗艷,各種嵌入式板卡令人眼花繚亂。伴隨著極大量標(biāo)準(zhǔn)
    發(fā)表于 02-14 14:00 ?1569次閱讀

    嵌入式代碼之編寫(xiě)規(guī)范

    嵌入式代碼編碼規(guī)范,用于規(guī)范自己的代碼,增強(qiáng)可讀性,非標(biāo)準(zhǔn)規(guī)范。最好能強(qiáng)制自己形成良好的編碼風(fēng)格
    的頭像 發(fā)表于 04-26 15:21 ?5152次閱讀

    嵌入式軟件之c語(yǔ)言編碼規(guī)范

    嵌入式軟件之c語(yǔ)言編碼規(guī)范
    發(fā)表于 10-28 18:13 ?28次下載

    嵌入式Linux環(huán)境變量分區(qū)制作

    嵌入式Linux環(huán)境變量分區(qū)制作嵌入式環(huán)境變量分區(qū)準(zhǔn)備一個(gè)存放環(huán)境變量的文本文件制作環(huán)境變量的工
    發(fā)表于 11-02 10:35 ?8次下載
    <b class='flag-5'>嵌入式</b>Linux環(huán)境<b class='flag-5'>變量</b>分區(qū)制作

    嵌入式C編程全局變量問(wèn)題分享

    嵌入式特別是單片機(jī)os-less的程序,最易范的錯(cuò)誤是全局變量滿(mǎn)天飛。這個(gè)現(xiàn)象在早期匯編轉(zhuǎn)型過(guò)來(lái)的程序員以及初學(xué)者中常見(jiàn),這幫家伙幾乎把全局變量當(dāng)作函數(shù)形參來(lái)用。
    發(fā)表于 07-17 16:53 ?661次閱讀