好的编程风格
1。關(guān)鍵字 if, while, for 后有一個(gè)空格
2。=號(hào)之類的雙目運(yùn)算符兩側(cè)都有空格
3。后綴運(yùn)算符和操作數(shù)之間不加空格 例如 s.a , foo(argu) , a[i]
4。, 號(hào)和 ; 號(hào)之后要加空格,例如 foo(argu1, argu2) for (i=0; i<20; i++)
5。關(guān)于雙目運(yùn)算符兩側(cè)加空格可以靈活規(guī)定,例如 distance = sqrt(x*x + y*y),突出結(jié)合方式
6。如果程序需要換行,則要與上一行的表達(dá)式對(duì)齊 foo(sqrt(x*x + y*y))
????????????????????????????????????????????????????????????????????????? a[i-1] + b[i-1] + c[i-1])
7。較長(zhǎng)的字符串可以段成多個(gè)字符串,并且要對(duì)齊
?????? printf(“This is such a long stenance that”
????????????????? "it can not be leld\n”);? 這個(gè) print函數(shù)中的字符串就跟一個(gè)是一樣的
8。有的人喜歡在變量定義語句中使用 Tab 字符,使變量名對(duì)齊。
????? int??????????? a, b;
????? double??? c;
9。關(guān)于縮進(jìn)的規(guī)則 建議使用 tabstop=8,看起來層次非常明顯??
10。if/else , while , do/while , for , switch 等語句塊的大括號(hào),不要單獨(dú)占一行 , 建議 if () {} ,并且大括號(hào)
???? 之前要有個(gè)空格。
11。函數(shù)定義的大括號(hào),{},要單獨(dú)占一行。
12。switch語句中的case,default對(duì)齊寫,
switch風(fēng)格switch (c) { case 'A':haha;break; case 'B':haha;break; default :oo; }13。代碼中沒個(gè)邏輯段落之間應(yīng)該有一個(gè)空格分開,例如全局變量與函數(shù)之間,或者函數(shù)與函數(shù)之間。
14。一個(gè)函數(shù)內(nèi),語句列表很長(zhǎng),分組,例如變量定義為一組加空格,語句,return 0 是一組,加空格。
15。單行注釋 /* comment */ 用空格把定界符和注釋分開。多行注釋風(fēng)格如下
多行注釋/** Multi-line* comment*/16。使用注釋的場(chǎng)合
- 整個(gè)源文件頂部。說明此模塊信息。頂頭寫,不縮進(jìn)
- 函數(shù)注釋,說明此函數(shù)的功能,參數(shù),返回值,錯(cuò)誤等等,卸載函數(shù)定義上側(cè),和此函數(shù)之間不留空行,頂頭寫
- 相對(duì)獨(dú)立的語句注釋,對(duì)這一組語句做特別說明,在語句組上側(cè),和此語句組不留空行,與當(dāng)前與劇組縮進(jìn)一致
- 代碼右側(cè)簡(jiǎn)短注釋,對(duì)當(dāng)前代碼行做特別說明,一般為單行注釋,和代碼之間至少用一個(gè)空格分開,最好能上下對(duì)齊。
函數(shù)內(nèi)的注釋要盡可能少,寫注釋主要是未了 說明你的代碼“能做什么”比如函數(shù)接口的定義,而不是為了說明“怎么做”,只要代碼寫的清楚,“怎么做”是一目了然的,除非是特別需要提醒注意的地方菜使用函數(shù)內(nèi)的注釋。 - 復(fù)雜的結(jié)構(gòu)體定義比函數(shù)更需要注釋。
- 復(fù)雜的宏和變量聲明也需要注釋。
17。標(biāo)識(shí)符命名
- 清晰明了,可以使用完整單詞和易于理解的縮寫,短的單詞可以采用去元音的縮寫形式,長(zhǎng)的單詞可以取單詞的頭幾個(gè)字母形成縮寫。
- 內(nèi)核編碼風(fēng)格規(guī)定變量,函數(shù)和類型采用全小寫加下劃線_的方式命名,常量(比如宏定義和枚舉常量)采用全大寫加下劃線的方式,例如 函數(shù) radix_tree_insert 類型名 struct radix_tree_root,常量RADIX_TREE_MAP_SHIFT等 ( 不要使用匈牙利命名法)C++中可以使用大小寫字母,叫做CamelCase
- 全局函數(shù)和全局變量的命名一定要詳細(xì),不惜多用幾個(gè)單詞多寫幾個(gè)下劃線,例如radix_tree_insert,因?yàn)樗鼈冊(cè)谡麄€(gè)項(xiàng)目的許多源文件中都會(huì)用到,必須讓使用者明確這個(gè)函數(shù)或變量是干什么用的。局部變量和只在一個(gè)源文件中調(diào)用的內(nèi)部函數(shù)的命名可以簡(jiǎn)略一些。但不能太短,盡量不要使用單個(gè)字母,只有一個(gè)例外:用 i , j , k 做循環(huán)變量可以。
- 禁止使用漢語拼音做標(biāo)識(shí)符。
18。函數(shù) ( 每個(gè)函數(shù)都應(yīng)該盡可能的簡(jiǎn)單,以下內(nèi)容如果不能滿足,考慮分割函數(shù))
- 實(shí)現(xiàn)一個(gè)函數(shù)只是為了做好一件事情
- 函數(shù)內(nèi)部縮進(jìn)不易過多,一般最多不能超過4層。
- 函數(shù)不要寫的太長(zhǎng),建議在24行的標(biāo)準(zhǔn)終端上不超過兩屏,太長(zhǎng)會(huì)造成閱讀困難。如果一個(gè)函數(shù)在概念上是簡(jiǎn)單的,只是長(zhǎng)度長(zhǎng)了一點(diǎn),沒關(guān)系。例如一個(gè)函數(shù)是由一個(gè)大的switch語句組成,其中有很多個(gè)case,這是可以的。
- 執(zhí)行函數(shù)就是執(zhí)行一個(gè)動(dòng)作,函數(shù)名通常應(yīng)包含動(dòng)詞。例如 get_current
- 比較重要的函數(shù)定義上側(cè)必須加注釋,說明函數(shù)的功能,參數(shù),返回值,錯(cuò)誤碼等等
- 另一個(gè)度量函數(shù)復(fù)雜度的辦法是看有多少個(gè)局部變量,一般5-10個(gè)局部變量已經(jīng)很多了。
19。indent工具(可以格式化代碼的工具)參數(shù) –kr –i8
轉(zhuǎn)載于:https://www.cnblogs.com/moveofgod/archive/2012/09/28/2706132.html
總結(jié)
- 上一篇: Chrome谷歌浏览器离线安装包下载
- 下一篇: 高德地图 android 调用 amap