C 編碼規範 2 命名規範

2021-08-27 09:12:11 字數 2518 閱讀 1702

如果你**中的變數名,函式數,類名都取得很好,不僅是個有意義的詞或短語,而且確切的表達了該變數或函式的功能.那讀起**來就像看文章一樣,絕對是一種享受.當然理想是美好的,現實可是殘酷的.很少有人能做到這樣.一來嘛你英語詞彙量得多,不樣不容易找到那麼多合適並貼切的詞.二來就是有些詞組合就會很長,這樣不得不用些縮寫,而縮寫就不是每個人都認識,對一些人來說和無意義的字母沒啥區別,只要你英語好才能一眼瞧出來.

當然當你使用乙個程式語言的話,裡面已經弄出很多詞來做關鍵字了,當你看熟了看多了後就會看著很舒服很順眼.但如果你學個啥框架,比如mfc,突然發現那麼多巨集名,還有一些型別名(其實也是巨集轉換整出來的). 就會覺得非常不順眼,非常醜陋.這些型別名大部分是一些縮寫,雖然是代表著確切的意思,但由於縮寫的太厲害了,你跟瞧著一堆沒意義的字母沒啥區別.當然你要用多了看著也就順眼了.

關於命名有兩個比較出名的專業名詞:hungarian(匈牙利) , camel(駱駝) , pascal(帕斯卡)

變數名=屬性+型別+物件描述.

例如int m_inumber;

如果是區域性變數一般就不需要屬性了,所以就是int inumber;

1.其中物件描述的名稱都要求有明確含義,可以取物件名字全稱或名字的一部分.可以起自解釋的作用,從名字中就可以看出變數的功能.

2.其中屬性(有個下劃線)包括:g_表示全域性變數, c_表示常量 , m_表示c++類成員變數, s_ 表示靜態變數 , sm_表示靜態成員變數

3.型別部分都是用型別關鍵字的縮寫表示:

型別名縮寫

char

cshort

sint

ilong

lunsigned

char

ucunsigned

short

usunsigned int

uiunsigned long

ulfloat

fdouble

dlong double

ldbool

bvoid

vpointer

penum

nstruct

xunion

warray

awindows型別

string

szdword

dwhandle

htchar

tcwchar

wcsmart pointer

splpstr

pclptstr

ptclpwstr

pwc據說這種命名法是一們叫charles simonyi的匈牙利程式設計師發明的,他也在微軟工作過.所以你檢視mfc中的一些原始碼會發現都用的匈牙利命名法,你要是開發中用到mfc可能也傾向於使用這種命名規範.

優點與缺點:

匈牙利命名的優點顯而易見,能從名字本身獲取到很多資訊,知道變數的型別或要實現的功能.

缺點是新增這些字首會使變數名變長,變數名一長就會顯得**,另外就是開發人員要多敲幾個字母.當然還有其他很多缺點.

另外就是匈牙利命名只是指標變數名,但在物件導向語言中肯定到處是類名和函式名,那類名和函式名該怎麼取呢? 此時在它們前面加個啥字首沒有太多意義的.

此時變數名=屬性+型別+物件描述 ,中最有物件描述這一項可派得上用場了,但是物件描述可沒給我們帶來啥明確的格式指導,比如描述資訊一長,就很不利於我們眼睛的識別.

於是就需要一些規範應用於物件描述的格式,另外一些命名規範就出現了.

駱駝有乙個很明顯的特徵就是背像個山峰一樣,有凹下去與凸起來的部分.

於是這種命名法就借鑑了這個特徵,讓變數名通過某些字母大寫來達到凹凸的效果,這有利於眼睛識別,因為如果都是小寫或大寫都不利於眼睛識別.

小駝峰命名法

除第乙個單詞首字母小寫,其他單詞首字母大寫.

例如 int myphonenumber;

大駝峰命名法(又叫pascal法)

所以單詞首字母大寫

例如 void getphonenumber();

實際上駝峰命名法與匈牙利命名法並不衝突,有時還可以綜合使用.

匈牙利法是

變數名=屬性+型別+物件描述

我們可以讓前兩者不變,只在物件描述中應用駝峰法.當然了也可以中單獨使用駝峰法,不需要屬性和型別資訊.

在c#中基本上習慣上只使用駝峰法,不再需要屬性或型別的資訊.因為vs這開發環境的智慧型感覺支援的非常好,你把滑鼠放哪個變數上會馬上顯示出型別等相關資訊.而且由於c#中在隱式型別轉換時要求較嚴,必須是精度不會降低,不會出現溢位.所以型別資訊對我們用處也不是太大了.最重要的是物件描述的功能性資訊了.

一般函式名和類名都用大駝峰命名法,不過在mfc中類名一般推薦是匈牙利與駝峰結合的變體,類前面加乙個大寫的字母c,後面部分就是大駝峰法了

就是單詞之間用下劃線連線

比如int my_number;

一般用的不多,不過像pl/sql裡面就用的特別多,因為pl/sql不像c++和c#變數是區分大小寫的.所以下劃線可能更好點.

在c++中一般巨集都全部大寫,然後單詞間用下劃線分開.

IOS編碼規範(命名規範)

一.命名規則 命名總則 1.使 用駝峰法命名,命名清晰明了,要做到 自描述,不能省略,部分cocoa通 用縮略詞能夠縮寫。objective c不 支援名字命名空間,所以某些命名要加項 目前綴區別。需要加字首的地 方 全域性變數,類名,全域性函式,category 每個類別,函式都必須新增字首 3....

Python編碼規範之命名規範

1 不要使用小寫字母 l el 大寫字母 o oh 或者小寫 i 作為單獨變數名稱。因為一些字型中,上訴字母和數字很難區分 比如 o和0,l和1 2 module應該採用全小寫,並且盡可能短的命名,可以在模組名中使用下劃線以提高可讀性。package應該採用全部小寫,並且也要盡可能短的命名,但不允許...

iOS之命名規範 編碼規範

遵守規範也是讓 更清晰明了,易讀,易用,易維護,可以更好的適應團隊開發。自己看著也是賞心悅目,何樂而不為呢。簡單明瞭的命名最好,不要用單詞的簡寫,盡量用單詞的全稱。可以看看蘋果的api格式,仿照蘋果的命名,盡量用英文,而不是拼音。比如方法名的功能型別的一致性,比如獲取某些資料 nsstring ge...