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

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

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

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

工程師進階筆記 ? 來源:一起學(xué)嵌入式 ? 2023-08-14 18:25 ? 次閱讀

看一份源碼什么很重要?除了各種代碼規(guī)范之外,還有一個比較重要的就是注釋。

注釋雖然寫起來很痛苦, 但對保證代碼可讀性至關(guān)重要,下面將介紹一下如何注釋以及在哪兒注釋。

注釋風(fēng)格

1、總述

一般使用//或/**/,只要統(tǒng)一就好。

2、說明

//或/**/都可以,但//更常用,要在如何注釋及注釋風(fēng)格上確保統(tǒng)一。

文件注釋

1、總述

在每一個文件開頭加入版權(quán)、作者、時間等描述。

文件注釋描述了該文件的內(nèi)容,如果一個文件只聲明,或?qū)崿F(xiàn),或測試了一個對象,并且這個對象已經(jīng)在它的聲明處進行了詳細的注釋,那么就沒必要再加上文件注釋,除此之外的其他文件都需要文件注釋。

2、說明

法律公告和作者信息: 每個文件都應(yīng)該包含許可證引用. 為項目選擇合適的許可證版本(全球各種開源協(xié)議介紹)。

如果你對原始作者的文件做了重大修改,請考慮刪除原作者信息。

3、文件內(nèi)容

如果一個 .h 文件聲明了多個概念, 則文件注釋應(yīng)當(dāng)對文件的內(nèi)容做一個大致的說明, 同時說明各概念之間的聯(lián)系. 一個一到兩行的文件注釋就足夠了, 對于每個概念的詳細文檔應(yīng)當(dāng)放在各個概念中, 而不是文件注釋中。

不要在 .h 和 .cc 之間復(fù)制注釋, 這樣的注釋偏離了注釋的實際意義。

函數(shù)注釋

1、總述

函數(shù)聲明處的注釋描述函數(shù)功能; 定義處的注釋描述函數(shù)實現(xiàn)。

2、說明

函數(shù)聲明:基本上每個函數(shù)聲明處前都應(yīng)當(dāng)加上注釋, 描述函數(shù)的功能和用途. 只有在函數(shù)的功能簡單而明顯時才能省略這些注釋(例如, 簡單的取值和設(shè)值函數(shù))。

比如:FreeRTOS創(chuàng)建任務(wù)函數(shù)聲明:

6544daf0-3a88-11ee-9e74-dac502259ad0.png

函數(shù)定義:如果函數(shù)的實現(xiàn)過程中用到了很巧妙的方式, 那么在函數(shù)定義處應(yīng)當(dāng)加上解釋性的注釋。

比如, 你所使用的編程技巧, 實現(xiàn)的大致步驟, 或解釋如此實現(xiàn)的理由. 舉個例子, 你可以說明為什么函數(shù)的前半部分要加鎖而后半部分不需要。

不要從.h文件或其他地方的函數(shù)聲明處直接復(fù)制注釋. 簡要重述函數(shù)功能是可以的, 但注釋重點要放在如何實現(xiàn)上。

變量注釋

1、總述

通常變量名本身足以很好說明變量用途, 某些情況下, 也需要額外的注釋說明。

2、說明

根據(jù)不同場景、不同修飾符,變量可以分為很多種類,總的來說變量分為全局變量、局部變量。

一般來說局部變量僅限于局部范圍,其含義相對簡單容易理解,只需要簡單注釋即可。

全局變量一般作用于多個文件,或者整個工程,因此,其含義相對更復(fù)雜,所以在注釋的時候,最好描述清楚其具體含義,就是盡量全面描述。 (提示:全局變量盡量少用)

拼寫注釋

1、總述

可能一個變量、一個函數(shù)包含的意思非常復(fù)雜,需要多個單詞拼寫而成,此時對拼寫內(nèi)容就需要詳細注釋。

2、說明

注釋的通常寫法是包含正確大小寫和結(jié)尾句號的完整敘述性語句. 大多數(shù)情況下, 完整的句子比句子片段可讀性更高. 短一點的注釋, 比如代碼行尾注釋, 可以隨意點, 但依然要注意風(fēng)格的一致性。

同時,注釋中的拼寫、逗號也很重要。

雖然被別人指出該用分號時卻用了逗號多少有些尷尬, 但清晰易讀的代碼還是很重要的. 正確的標(biāo)點, 拼寫和語法對此會有很大幫助。

TODO 注釋

1、總述

對那些臨時的, 短期的解決方案, 或已經(jīng)夠好但仍不完美的代碼使用 TODO 注釋。

TODO 注釋要使用全大寫的字符串 TODO, 在隨后的圓括號里寫上你的名字, 郵件地址, bug ID, 或其它身份標(biāo)識和與這一 TODO 相關(guān)的 issue. 主要目的是讓添加注釋的人 (也是可以請求提供更多細節(jié)的人) 可根據(jù)規(guī)范的 TODO 格式進行查找. 添加 TODO 注釋并不意味著你要自己來修正, 因此當(dāng)你加上帶有姓名的 TODO 時, 一般都是寫上自己的名字。

棄用注釋

1、總述

通過棄用注釋(DEPRECATEDcomments)以標(biāo)記某接口點已棄用. 您可以寫上包含全大寫的DEPRECATED的注釋, 以標(biāo)記某接口為棄用狀態(tài). 注釋可以放在接口聲明前, 或者同一行. 在DEPRECATED一詞后, 在括號中留下您的名字, 郵箱地址以及其他身份標(biāo)識. 棄用注釋應(yīng)當(dāng)包含簡短而清晰的指引, 以幫助其他人修復(fù)其調(diào)用點. 在 C++ 中, 你可以將一個棄用函數(shù)改造成一個內(nèi)聯(lián)函數(shù), 這一函數(shù)將調(diào)用新的接口. 僅僅標(biāo)記接口為DEPRECATED并不會讓大家不約而同地棄用, 您還得親自主動修正調(diào)用點(callsites), 或是找個幫手. 修正好的代碼應(yīng)該不會再涉及棄用接口點了, 注釋改用新接口點. 如果你不知從何下手, 可以找標(biāo)記棄用注釋的當(dāng)事人一起商量。

結(jié)語

注釋固然很重要, 但最好的代碼應(yīng)當(dāng)本身就是文檔,有意義的類型名和變量名, 要遠勝過要用注釋解釋的含糊不清的名字。

你寫的注釋是給代碼閱讀者看的, 也就是下一個需要理解你代碼的人. 所以慷慨些吧, 下一個讀者可能就是你!






審核編輯:劉清

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

    關(guān)注

    5088

    文章

    19159

    瀏覽量

    306509
  • 編碼器
    +關(guān)注

    關(guān)注

    45

    文章

    3656

    瀏覽量

    134898
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137266
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62277

原文標(biāo)題:嵌入式 C 語言代碼注釋規(guī)范

文章出處:【微信號:工程師進階筆記,微信公眾號:工程師進階筆記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式軟件的注釋技巧

    交付產(chǎn)品的壓力經(jīng)常導(dǎo)致天馬行空般的編碼風(fēng)格,為了完成任務(wù)以便盡早推出產(chǎn)品,代碼是想到哪就編到哪。在瘋狂的代碼編寫過程中,很少想到記錄下代碼要完成的功能。等產(chǎn)品交貨后,設(shè)計人員才會回去瀏覽代碼并進行“注釋”。
    的頭像 發(fā)表于 05-20 10:10 ?4798次閱讀

    LstBox Refnum 在哪兒?

    LstBox Refnum 在哪兒?PCB打樣找華強 http://www.hqpcb.com/3 樣板2天出貨
    發(fā)表于 10-14 23:00

    請問在哪兒可以購買TMS570LS1224的開發(fā)板?

    我是學(xué)嵌入式的新手,誰能告訴我在哪兒可以買到TMS570LS1224的開發(fā)板啊?或者是這個系列的其他型號也行
    發(fā)表于 07-10 16:20

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

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

    嵌入式數(shù)據(jù)庫有哪些應(yīng)用實例?

    嵌入式數(shù)據(jù)庫和企業(yè)級數(shù)據(jù)庫的區(qū)別在哪兒?嵌入式數(shù)據(jù)庫有哪些應(yīng)用實例?
    發(fā)表于 05-12 06:12

    C語言注釋刪除小工具是什么

    C語言注釋刪除小工具是一款刪除c語言注釋并實現(xiàn)編譯的工具,如果你喜歡這款軟件,就快來IT貓撲下載
    發(fā)表于 07-14 08:39

    嵌入式c語言編程(由淺入深)

    本內(nèi)容詳細介紹了嵌入式c語言編程的各項知識,包括嵌入式c語言編程,
    發(fā)表于 11-02 14:37 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>c</b><b class='flag-5'>語言</b>編程(由淺入深)

    C語言整理注釋刪除工具應(yīng)用程序免費下載

      本文檔的主要內(nèi)容詳細介紹的是C語言整理注釋刪除工具應(yīng)用程序免費下載。
    發(fā)表于 12-11 17:49 ?15次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>整理<b class='flag-5'>注釋</b>刪除工具應(yīng)用程序免費下載

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

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

    C語言如何注釋以及在哪兒注釋

    文件注釋描述了該文件的內(nèi)容,如果一個文件只聲明,或?qū)崿F(xiàn),或測試了一個對象,并且這個對象已經(jīng)在它的聲明處進行了詳細的注釋,那么就沒必要再加上文件注釋,除此之外的其他文件都需要文件注釋。
    的頭像 發(fā)表于 06-17 09:22 ?4139次閱讀

    C語言為何用/* */ 注釋?

    有些早期的C編譯器對這種注釋是不支持的。代碼要做到全平臺兼容,這點是必須要考慮的。 因此,老外定義的C語言軟件規(guī)范,無論是MISRA還是CMMI,一般都要求所有代碼
    的頭像 發(fā)表于 11-13 12:33 ?694次閱讀

    C語言中如何實現(xiàn)注釋

    C語言中,注釋是用來增加代碼可讀性和注釋過程和功能的文本。C語言中支持兩種類型的
    的頭像 發(fā)表于 11-22 10:17 ?1325次閱讀

    c語言怎么把代碼全部注釋

    要將C語言代碼全部注釋掉,即不讓代碼被編譯和執(zhí)行,可以使用注釋語句來實現(xiàn)。C語言提供兩種
    的頭像 發(fā)表于 11-22 10:21 ?7470次閱讀

    嵌入式C語言的結(jié)構(gòu)特點

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

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

    嵌入式系統(tǒng)】提示,注釋格式可以參考Doxygen標(biāo)準(zhǔn)。 ◎ 全局變量要有較詳細的注釋 ◎ 函數(shù)內(nèi)部注釋:函數(shù)內(nèi)部不是注釋越多越好,而是
    的頭像 發(fā)表于 12-07 14:53 ?802次閱讀