日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++代码规范

發布時間:2025/3/21 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++代码规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C/C++代碼規范

命名

命名,包括文件名、類名、結構名、類型名、函數名、變量名、參數名等都是程序設計中重要的一部分。一個好的名稱,體現了一個深思熟慮的過程,同時也 能夠幫助別人更好地理解開發者的思路。如果發現程序中,充滿了a, b, c, x, y, z, tmp這種命名的變量,這時候就需要仔細的考慮自己的實現是否有問題。

類(結構)名

  • 類名必須是名詞,類名必須明確表示這個類代表了什么。
  • 如果類名超過3個單詞,說明這個類有可能需要拆分了。
  • 不要把父類的名字帶到子類中。
  • 類名加上后綴也是一種選擇。如下載代理類,可以寫為DownloadProxy。
  • 類名首字母大寫;用大寫字母分隔單詞,除單詞的首字母外,全部小寫;類名中不要出現下劃線“_”。

類(結構)屬性名

  • 屬性由成員前綴”m_“屬性,屬性名采用匈牙利命名規范。

方法

  • 方法與函數執行一個任務,因此應當用動詞來命名。比方說,DumpDataToFile()就要好于DataFile()。
  • 方法名首字母大寫;用大寫字母分隔單詞,除單詞的首字母外,全部小寫,方法名中不要出現下劃線。

函數

  • 方法與函數執行一個任務,因此應當用動詞來命名。
  • 函數名全部小寫,單詞之間用下劃線分隔。

方法與函數參數名

  • 首字母小寫。
  • 除了第一個單詞,所有單詞的首字母大寫。
  • 名稱中不應出現”_”。

類庫名

  • 如果使用C書寫類庫,或在C++不使用namespace書寫類庫,為了避免命名沖突,需要在類名,結構名,函數名前加上類庫名前綴。類庫名應當簡潔、明確。 如: ImEgg* ImEgg_new();

變量名

  • 變量名使用匈牙利命名規則。
  • 全部小寫字母。
  • 使用”_”作為分隔符。
  • 唯一能違反以上命名規則的,是一些循環中需要用到的自增變量。 如: int fun(Point* pPoint) {Point* p_nest_point = pPoint;char* p = NULL;char sz_buf[255];for (int i = 0; i < 50 && (sz_buf+p++) != ' '; i++){// do stuff} }
    ppoint
    bbyte
    wword
    dwdouble word
    chchar
    wchwide char
    nnumber
    szchar[]
    fbool
    fnfunction pointer
    vvoid
    lpszchar* terminated by zero

指針變量

  • 指針變量應在類型前加上p前綴,其后變量名命名規則不變。
  • *號永遠靠近類型,一行聲明中只出現一個指針變量。 如: Point* p_point;

引用變量

  • 引用變量應在類型前加上r前綴,其后變量名命名規則不變。

全局變量

  • 全用變量應使用g_屬性描述,其后變量名命名規則不變。 如: ImLog4c* g_pLogger;

靜態變量

  • 靜態變量應使用s_屬性描述,其后變量名命名規則不變。 ImLog4c* s_pLogger;

枚舉類型

  • 枚舉類型命名規則使用大寫字母,用下劃線分隔單詞。 Enum PIN { PIN_ON = 1; PIN_OFF; };

  • 宏命名規則使用大寫字母,用下劃線分隔單詞。 #define MAX_LENGTH 50 #define MAX(a, b) (a)>(b)?(a):(b)

集合名稱

  • 集合名稱使用復數,其它與變量名規范相同。 GList* edges = g_list_new(); vector<Edge> edges; typedef vector<Edge> EdgeVector; typedef map<string, EdgeVector> EdgeMap; typedef list<EdgeMap> EdgeList;

格式

{}規則

  • “{“與”}”單獨占一行。
  • “{“與”}”與上一行行首對齊。
  • If與while后哪怕只有一句話,也要加上“{“與”}”。 while (*(buf+p++) != ' ') printf("hello\n");

()規則

  • "("與前一個關鍵字之間留一個空格。
  • "("與前函數名之間不需要留一個空格。
  • Return語句盡可能不要用"()" return (a*b^2>100)?(a):(b);

縮進規則

  • 縮進永遠為4。
  • 用空格代替tab。
  • Tab永遠用4。
  • 如果縮進超過5層,考慮代碼優化。

列長度

  • 一列不應該超過80個英文字符。
  • 一個聲明占一行
  • 一個聲明占一行。

三元表達式

  • 條件表達式占一行
  • then與else應單獨占一行。 (condition)???funct1()?:?func2();??? Or(condition)??long?statement:?another?long?statement;

頭文件順序

  • 頭文件應當按照與功能的特點性從高到低排列。順序為
  • 當前目錄的頭文件。
  • 自行開發庫的頭文件。
  • 第三方庫的頭文件。
  • 標準C++頭文件。
  • 標準C頭文件。

空格

  • 操作符需要加上空格。
  • 關鍵字前后要加上空格。
  • 逗號后要加上空格。
  • 冒號后要加上空格。
  • 在一行內的分號后要加上空格,行末的分號不要空格。 fun(a, b); for (int I = 0; I < 50; i++);

類與結構

類文件與結構文件命名

  • 公有類,C中用以模擬類的結構,需要位于一個獨立的文件中。
  • 文件名與公有類名,C中用以模擬類的結構名相同。

類與結構頭文件布局

  • 文件描述,使用Doxygen語法。
  • 頭文件保護宏。
  • 頭文件。
  • 類或結構描述,使用Doxygen語法。
  • 類或結構名。
  • 屬性描述,使用Doxygen語法。以下每個屬性或方法都要求對應一個描述。
  • 屬性聲明。
  • C++與身命周期相關函數聲明。C++中的構造方法,析構方法以及工廠方法。
  • C++操作符重載。
  • C++訪問器,get與set方法。

轉載于:https://www.cnblogs.com/wangkangluo1/archive/2011/06/02/2068789.html

總結

以上是生活随笔為你收集整理的C/C++代码规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。