C++代碼注釋文件中的@return是什麼意思啊?

#ifndef __NWCSystemFacade_H__

#define __NWCSystemFacade_H__

#include "cocos2d.h"

#include "NetWorkCommand.h"

#include "NWCStructInterface.h"

using namespace cocos2d;

class NWCSystemFacade : public CCObject ,public NWCStructInterface{

public:

NWCSystemFacade();

~NWCSystemFacade();

NetWorkCommandStruct getMyModules();

/**

* 獲取當前的系統時間

* @return 當前系統時間的 long 表示形式

*/

bool* getCurrentTime();

/**

* 獲取當前的在線用戶數量信息

* @return

*/

bool* getOnlineInfo();

/**

* 檢查指定用戶名是否已經存在

* @param username 被檢查的用戶名

* @return 0:存在,-1:不存在, -2:不允許註冊

*/

bool* checkUsername(string username);

// ------------------------

/**

* 保持用戶連接激活

*/

bool* keepAlive(int checksum);

protected:

NetWorkCommandStruct m_nwc_struct;

};

#endif

問題說明:上面是一個C++頭文件的內容,裡面的@return表示什麼意思啊? 以前讀源碼經常看到,沒有當回事,就把它直接當成注釋來看待了。應該和一般的注釋有區別吧。經搜索,如果在Java代碼中,叫註解。沒有找到和C++相關的內容。


這是JavaDoc的注釋方式,以這樣方式寫成的注釋,可以被JavaDoc等軟體處理成文檔。

被標記為return的是對返回值的注釋,也有對參數的注釋等等。這些在生成文檔的時候,會被自動加到對應的位置上。

比如:

/**
* a normal member taking two arguments and returning an integer value.
* @param a an integer argument.
* @param s a constant character pointer.
* @see Test()
* @see ~Test()
* @see testMeToo()
* @see publicVar()
* @return The test results
*/
int testMe(int a,const char *s);

這段代碼會被處理成

這樣的文檔

@vczh說的Doxygen是這類軟體中比較常用的,上面的就是它manual中的例子。它不僅支持這種JavaDoc風格的注釋,也支持Qt風格的注釋。

另外Visual Studio對C#也有類似的支持,你在函數前打三個"/",會自動生成一部分注釋,你把剩下的填好以後,在調用函數時VS就會有像Framework那些函數一樣的提示了。

不過VS自帶的這個功能不算太強,有個神一樣的插件可以根據你的函數名和參數名自動猜出來它的意思填到對應地方去,並且可以切換不同的注釋風格。


大概是doxygen的注釋格式吧,用來偷懶生成文檔的。


/**

* 檢查指定用戶名是否已經存在

* @param username 被檢查的用戶名

* @return 0:存在,-1:不存在, -2:不允許註冊

*/

bool* checkUsername(string username);

這不是很明了么。。。

param,對輸入參數的解釋

return,對返回值的解釋

-

注釋文檔一般用兩個星號標誌:

/**
* &
*
* &
* &
*
* @param Description of method"s or function"s input parameter
* @param ...
* @return Description of the return value
*/

但也能和HeaderDoc一樣使用*!的標誌。 例如:

/*!
* &

*
* &
* &
*
* @param Description of method"s or function"s input parameter
* @param ...
* @return Description of the return value
*/

參考:Doxygen


documented annotation,算是Java annotation的基本用法(也是對於整體代碼最無用的用法)之一。這種東西Java用的吧,c++也有?還是說這只是這個程序員的個人喜好?


推薦閱讀:

能否用視頻分享:你用代碼做過哪些很酷/有趣的事兒?
工作的程序員每天的代碼量是多少呢?
怎麼才能在一天寫出萬行代碼並且基本沒有bug?
誰寫過的代碼有10w行?
是不是c++的代碼量特別多?其它語言需要10萬行的項目多嗎?

有沒有關於多線程同步的經驗,或者書籍推薦?

TAG:編程語言 | 代碼 | 編譯 | 文檔管理 | 注釋編程 |