1. 程式人生 > >看懂原始碼之註釋規範

看懂原始碼之註釋規範

1.前言

為了增強原始碼的可閱讀性、結構性,方便程式碼閱讀者對原始碼的閱讀和理解,以及方便原始碼文件的製作和生成,原始碼的註釋通常按一定的規範編寫。
所以要想更好的讀懂原始碼,就必須對註釋規範有一定的瞭解。

2.註釋詳解

2.1 定義註釋塊

/*!
 * 一個註釋塊
 */

2.2 檔案註釋塊

/*!
 * @file 檔名
 * @brief 檔案簡要說明
 * @author 作者
 * @date 時間
 * @version 版本
 */

2.3 類註釋塊

/*!

 * @class 類名
 * @brief 類簡要說明
 * 
 * 詳細描述
 */

2.4 類成員方法、數註釋標記

  • 簡要說明標記(@brief),內容為方法 / 函式的簡要說明。
  • 詳細描述,詳細描述與@brief標記之間空一行
  • 若干個引數描述標記(@param),數量與該方法的輸入引數個數相同。格式為:“@param 引數名稱 引數說明”。
  • 異常描述標記(@exception),對該方法丟擲的異常進行描述,可省略。
  • 警告標記(@warning),對呼叫方法需要注意的地方進行描述,可省略
  • 前置條件標記(@pre),描述執行方法的前置條件,比如對輸入引數的要求等,可省略。
  • 後置條件標記(@post),描述執行方法的後置條件,比如對系統狀態的影響或返回引數的結果預期等,可省略。
  • 增加日期標記(@since),對於新增的方法,描述什麼時候增加該方法及增加該方法的意圖。可省略
  • TODO標記(@todo),對該方法將要做的事情進行描述,用於比較關鍵的方法。
  • 缺陷標記(@bug),對該方法存在的缺陷進行描述。若存在已知的缺陷,需要定義該標記,否則省略
  • 返回值標記(@return),描述該方法的返回值,格式為:“@return 返回值型別 返回值描述”。若返回值為void型別,則省略該標記

2.5 模組註釋

/*!
 * @defgroup 模組名稱
 * @brief 模組簡介
 *
 * 模組的詳細描述
 * @{
 */





/** @} */

@{ 是模組起始標記。
/* @} /是模組結束標記。
位於模組起始註釋塊與結束註釋塊之間的所有內容將歸入該模組。

相關推薦

原始碼註釋規範

1.前言 為了增強原始碼的可閱讀性、結構性,方便程式碼閱讀者對原始碼的閱讀和理解,以及方便原始碼文件的製作和生成,原始碼的註釋通常按一定的規範編寫。 所以要想更好的讀懂原始碼,就必須對註釋規範有一定的瞭解。 2.註釋詳解 2.1 定義註釋塊 /

一張圖JVM垃圾回收算法詳解

mem gc roots 怎樣 src 操作系統 相關 大小 通過 實現 導讀

如何原始碼--(分析原始碼方法)

積累一些讀軟體原始碼的好方法: 轉載:http://blog.csdn.net/challenge_c_plusplus/article/details/6680220 想要更多軟體開發資料或幫助, 請加QQ技術群:  69255833 我們在寫程式時,有不少時間都是在看別

如何原始碼–(分析原始碼方法)

我們在寫程式時,有不少時間都是在看別人的程式碼。例如看小組的程式碼,看小組整合的守則,若一開始沒規劃怎麼看, 就會“嚕看嚕苦(臺語) ” 不管是參考也好,從開源抓下來研究也好,為了瞭解箇中含意,在有限的時間下,不免會對龐大的原始碼解讀感到壓力。網路上有一篇關於分析看程式

4. 我使用的C/C++編寫規範註釋

XML mit 避免 ans call 成熟 上一個 cati 查找 閑來無事,把自用的C/C++編程規範整理一下。內容主要來自Google與華為,並參考了一點微軟。   註釋雖然寫起來很痛苦,但對保證代碼可讀性至為重要,下面的規則描述了應該註釋什麽、註釋在哪兒。當然也要

UI設計師晉升路,的都是精英!!

用戶 視覺 能夠 new 基礎 以及 常熟 你會 項目 UI設計師(http://www.sz-sztl.com/news/)的晉升分為四個階段:初級UI設計師、中級UI設計師、高級UI設計師、設計總監,在這裏分享一下設計師每個階段都需要掌握的一些技能。 初級

設計模式UML類圖

另一個 語言 表示 first 狀態圖 兩種 天然 公司 ocs 什麽是UML:   UML(統一建模語言)是當今軟件設計的標準圖標式語言。對於一個軟件系統而言,UML語言具有以下的功能:可視化功能、說明功能、建造功能和建文檔功能。   UML都包括什麽類型

一篇文章徹底讀HashMapHashMap原始碼解析(下)

put函式原始碼解析 //put函式入口,兩個引數:key和value public V put(K key, V value) { /*下面分析這個函式,注意前3個引數,後面 2個引數這裡不太重要,因為所有的put 操作後面的2個引數預設值都一樣 */

一篇文章徹底讀HashMapHashMap原始碼解析(上)

就身邊同學的經歷來看,HashMap是求職面試中名副其實的“明星”,基本上每一加公司的面試多多少少都有問到HashMap的底層實現原理、原始碼等相關問題。 在秋招面試準備過程中,博主閱讀過很多關於HashMap原始碼分析的文章,漫長的拼湊式閱讀之後,博主沒有看到過

從Webpack原始碼探究打包流程,萌新也能

簡介 上一篇講述瞭如何理解tapable這個鉤子機制,因為這個是webpack程式的靈魂。雖然鉤子機制很靈活,而然卻變成了我們讀懂webpack道路上的阻礙。每當webpack執行起來的時候,我的心態都是佛繫心態,祈禱中間不要出問題,不然找問題都要找半天,還不如不打包。尤其是loader和plugin的執行

【轉】Spring核心BeanFactory 一張圖getBean全過程

Spring通過資源載入器載入相應的XML檔案,使用讀取器讀取資源載入器中的檔案到讀取器中,在讀取過程中,解析相應的xml檔案元素,轉化為spring定義的資料結BeanDefinition,把相應的BeanDefinition註冊到登錄檔中。登錄檔中包含的BeanDefinition的資料結構,沒有經過加工

資料結構二叉查詢樹Java實現原始碼註釋

二叉查詢樹(Binary Search Tree),(又:二叉搜尋樹,二叉排序樹)它或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值; 它的左、右子樹也分別為二叉排序樹。以下是樓主用jav

嵌入式攻城獅養成計劃(三)嵌入式系統基礎各類介面及原理圖

 Emmmmm.先寫個目錄,慢慢更新。 一、上電啟動 二、GPIO介面 GPIO——通用輸入輸出介面(General Purpose Input/Output) 上拉、下拉電阻:當GPIO引腳處於第三態(既不是輸出高電平,也不是輸

你真的ThreadPoolExecutor執行緒池技術嗎?原始碼你會有全新的認識

Java是一門多執行緒的語言,基本上生產環境的Java專案都離不開多執行緒。而執行緒則是其中最重要的系統資源之一,如果這個資源利用得不好,很容易導致程式低效率,甚至是出問題。 有以下場景,有個電話撥打系統,有一堆需要撥打的任務要執行,首先肯定是考慮多執行緒非同步去執行。假如我每執行一個撥打任務都new一個Th

Retrofit2原始碼詳解

前言 Android開發發展到現在,網路請求的主流已經毫無疑問的是Retrofit加OkHttp了,兩年前就使用了Retrofit,但是一直沒有仔細研究其原始碼,前段時間系統梳理了Java註解的知識集結成 秒懂 Java註解型別(@Annotat

Python(11)萌新也能——用Python讀取資料庫,然後寫入Excel裡

和excel結合 Python操作MySQL資料庫的教程: 這個是同步行為,所以可以先用上面那篇教程,讀取mysql的資料。 將讀取到的資料寫入到excel裡。 0、準備工作 如果缺少模組,請參照本部落格和上一篇部落格安裝模組。 如果缺少My

Spring核心BeanFactory 一張圖getBean全過程

需要的方法引數如下: 1.name 你要得到bean物件的名稱 不能為空 2.requiredType 這個bean物件的Class型別,可以為null 3.args 可以為null,如果有引數,則代表在找到這個bean定義後,通過構造方法或工廠方法或其他方法傳入args引數來改變這個bean例項。 spri

帶你大資料採集引擎Flume&採集目錄中的日誌

歡迎關注大資料和人工智慧技術文章釋出的微信公眾號:清研學堂,在這裡你可以學到夜白(作者筆名)精心整理的筆記,讓我們每天進步一點點,讓優秀成為一種習慣! 帶你看懂大資料採集引擎之Flume&採集目錄中的日誌 一、Flume的介紹: Flume由Clo

玩轉Webservlet(三)---一張圖B/S架構

學WEB, 首先 要明白B/S架構,本文將簡單說一下小編的愚見,若有不當,歡迎大家指正。 首先,什麼是B/S架構?B/S是Broweser/Server的縮寫,即瀏覽器/伺服器模式,簡單說就是客戶端使用瀏覽器,服務端使用Web伺服器,客戶端與服務端之間使用http協議進行通

一篇文章TPCx-BB(大資料基準測試工具)原始碼

TPCx-BB是大資料基準測試工具,它通過模擬零售商的30個應用場景,執行30個查詢來衡量基於Hadoop的大資料系統的包括硬體和軟體的效能。其中一些場景還用到了機器學習演算法(聚類、線性迴歸等)。為了更好地瞭解被測試的系統的效能,需要對TPCx-BB整個測試流程深入瞭解。本文詳細分析了整個TPCx