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)不再提示

如何規(guī)范嵌入式C編碼注釋以及排版與格式

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

注釋

◎ 注釋?xiě)?yīng)放在其代碼上方相鄰位置或右方,不可放在下面。
◎ 注釋的內(nèi)容要清楚明了,防止注釋二義性。
◎ 修改代碼時(shí)同步更新注釋?zhuān)WC注釋與代碼的一致性。
◎ 函數(shù)聲明處注釋描述函數(shù)功能、性能及用法,提供參考范本如下:

/**
 * @brief    函數(shù)功能
 * @params 
 * @return
 * @par history
 *   xx create  @2023-xx-xx
 */

微信公眾號(hào)【嵌入式系統(tǒng)】提示,注釋格式可以參考Doxygen標(biāo)準(zhǔn)。

◎ 全局變量要有較詳細(xì)的注釋
◎ 函數(shù)內(nèi)部注釋?zhuān)汉瘮?shù)內(nèi)部不是注釋越多越好,而是變量命名和邏輯清晰,自注釋最好,特殊情況或者需要特別注意的地方才加注釋?zhuān)⑶易⑨屢旁诖a行的上方。
◎ 基于SDK開(kāi)發(fā),在基線(xiàn)工程上改動(dòng)代碼,不允許刪除源代碼,修改代碼必須增加注釋?zhuān)仨毷褂藐P(guān)鍵字“XX_CODE”標(biāo)注修改原因,方便后續(xù)打補(bǔ)丁,范例如下:

/**** XX_CODE begin ****/
/*修改原因,作者,時(shí)間*/
< 代碼塊 >
/**** XX_CODE end ****/

對(duì)于非c源碼的文件,在這個(gè)注釋格式的基礎(chǔ)上,每行添加對(duì)應(yīng)的注釋符號(hào)。
◎ 修改與外設(shè)驅(qū)動(dòng)、通信協(xié)議、系統(tǒng)底層等相關(guān)的代碼,具有特殊隱含限制的代碼,必須提交詳細(xì)的修改原因,便于后續(xù)版本回溯查找原因。
◎ 復(fù)雜且相對(duì)獨(dú)立的功能,單獨(dú)使用markdown文檔說(shuō)明開(kāi)發(fā)方案、實(shí)現(xiàn)技術(shù)、應(yīng)用場(chǎng)景、使用限制等,隨代碼提交。

排版與格式

◎ 程序塊釆用縮進(jìn)風(fēng)格編寫(xiě),每級(jí)縮進(jìn)為4個(gè)空格。
◎ 相對(duì)獨(dú)立的程序塊之間、變量說(shuō)明之后必須加空行。
◎ 多個(gè)短語(yǔ)句不允許寫(xiě)在同一行內(nèi),長(zhǎng)語(yǔ)句不能拆分需要分行寫(xiě)。
◎ if、for、do、while、case、switch、default等語(yǔ)句獨(dú)占一行,{換行且獨(dú)占一行。
◎ 賦值語(yǔ)句不要寫(xiě)在if等語(yǔ)句中,或者作為函數(shù)的參數(shù)使用。
◎ 邏輯表達(dá)式每個(gè)子項(xiàng)都使用()。
◎ if與else if/else必須以’{}’分隔,且 ‘{’與‘}’各占一行,if-else分3層以上必須以else子句結(jié)束,即使操作為空,并增加注釋://do nothing

if(var==xx)
{
  …
}
else if (var==yy)
{
  …
}
else if (var==zz)
{
  …
}
else
{
  //do nothing
}

◎ switch語(yǔ)句必須有default分支。
◎ 在兩個(gè)以上的關(guān)鍵字、變量、常量進(jìn)行對(duì)等操作時(shí),它們之間的操作符之前、之后或者前后要加空格;進(jìn)行非對(duì)等操作時(shí)(如->),后面不應(yīng)加空格。
◎ 文件編寫(xiě)完成后,統(tǒng)一使用Astyle自動(dòng)格式化工具整理一遍再提交到版本庫(kù)。

astyle.exe --style=allman -S -U -t -n -K -p -s4 -j -q -Y -xW -xV

微信公眾號(hào)【 嵌入式系統(tǒng) 】提示,可以參考《代碼的保養(yǎng)》;排版格式很多,一個(gè)團(tuán)隊(duì)最重要的是統(tǒng)一風(fēng)格。

聲明:本文內(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)注

    5088

    文章

    19158

    瀏覽量

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

    關(guān)注

    6

    文章

    952

    瀏覽量

    54888
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4809

    瀏覽量

    68820
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常見(jiàn)紅外遙控器編碼與格式

    常見(jiàn)紅外遙控器編碼與格式
    發(fā)表于 11-09 15:05

    嵌入式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

    嵌入式開(kāi)發(fā)putty串口打印亂碼編碼格式問(wèn)題

    目錄嵌入式開(kāi)發(fā)putty串口打印亂碼編碼格式問(wèn)題波特率設(shè)置錯(cuò)誤嵌入式開(kāi)發(fā)putty串口打印亂碼在使用putty連接串口打印的時(shí)候,發(fā)現(xiàn)打印亂碼。問(wèn)題原因可能有兩個(gè),一個(gè)是
    發(fā)表于 11-05 09:10

    LOOP指令功能與格式總結(jié)

    因?yàn)?b class='flag-5'>嵌入式系統(tǒng)學(xué)習(xí)需要,開(kāi)始學(xué)習(xí)匯編語(yǔ)言學(xué)習(xí)資料是B站的視頻:匯編語(yǔ)言程序設(shè)計(jì) 賀利堅(jiān)主講 (P25)這里寫(xiě)目錄標(biāo)題LOOP功能與格式一、LOOP指令實(shí)例二、LOOP指令執(zhí)行的要求三、用LOOP指令
    發(fā)表于 01-17 06:26

    嵌入式C的主要特點(diǎn)以及嵌入式C與標(biāo)準(zhǔn)C異同沖區(qū)重用

    嵌入式C發(fā)展迅速, 而且成為最受歡迎的語(yǔ)言之一, 主要因?yàn)樗哂袕?qiáng)大的功能。用嵌入式C加上一些匯編語(yǔ)言子程序, 就更能顯示嵌入式
    發(fā)表于 05-29 14:24 ?3790次閱讀

    嵌入式C語(yǔ)言教程以及C編程要素

    前記住要保存并關(guān)閉文件;  16、出錯(cuò)情況的處理;  17、寫(xiě)上必要的注釋?! ∫陨鲜切【幗o同學(xué)們講的嵌入式C語(yǔ)言教程以及C編程要素,同學(xué)們
    發(fā)表于 09-05 10:59 ?516次閱讀

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

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

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

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

    嵌入式log打印格式輸出技巧

    嵌入式log打印格式輸出技巧Log 信息格式條件編譯可變參數(shù)宏C標(biāo)準(zhǔn)中一些預(yù)定義的宏格式輸出16進(jìn)制數(shù)組Log 信息
    發(fā)表于 10-20 21:06 ?5次下載
    <b class='flag-5'>嵌入式</b>log打印<b class='flag-5'>格式</b>輸出技巧

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

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

    嵌入式C語(yǔ)言編碼如何注釋?在哪兒注釋?

    看一份源碼什么很重要?除了各種代碼規(guī)范之外,還有一個(gè)比較重要的就是注釋。
    的頭像 發(fā)表于 08-14 18:25 ?1334次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>編碼</b>如何<b class='flag-5'>注釋</b>?在哪兒<b class='flag-5'>注釋</b>?

    嵌入式C語(yǔ)言的結(jié)構(gòu)特點(diǎn)

    過(guò)程中,不論是基于寄存器開(kāi)發(fā)還是基于庫(kù)開(kāi)發(fā),深入理解和掌握嵌入式C語(yǔ)言的函數(shù)、指針、結(jié)構(gòu)體是學(xué)習(xí)STM32的關(guān)鍵。嵌入式C語(yǔ)言的結(jié)構(gòu)特點(diǎn)如下。 (1)程序總是從main函數(shù)開(kāi)始執(zhí)行,語(yǔ)
    的頭像 發(fā)表于 11-24 16:16 ?719次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>C</b>語(yǔ)言的結(jié)構(gòu)特點(diǎn)

    嵌入式C編碼文件頭申明規(guī)范

    編碼規(guī)范 2.1 文件頭申明 ◎ 新增.c必須添加注釋,標(biāo)注公司名稱(chēng)、文件功能說(shuō)明,創(chuàng)建日期、作者,后續(xù)修改說(shuō)明 范例
    的頭像 發(fā)表于 12-07 14:29 ?445次閱讀