C C 命名規則

2021-05-24 21:45:47 字數 3518 閱讀 5697

無規矩不成方圓,折騰程式前,先把規矩定下來~哈……

1.1 共性規則

本節論述的共性規則是被大多數程式設計師採納的,我們應當在遵循這些共性規則的前提下,再擴充特定的規則,如1.2和1.3中所描述的。

【規則1-1-1】識別符號應當直觀且可以拼讀,可望文知意,不必進行"解碼"。

識別符號最好採用英文單詞或其組合,便於記憶和閱讀。切忌使用漢語拼音來命名。程式中的英文單詞一般不會太複雜,用詞應當準確。例如不

要把currentvalue寫成nowvalue。

【規則1-1-2】識別符號的長度應當符合"min-length && max-information"原則。

幾十年前老ansi c規定名字不准超過6個字元,現今的c++/c不再有此限制。一般來說,長名字能更好地表達含義,所以函式名、變數名、類名長達十幾個 字元不足為怪。那麼名字是否越長約好?不見得! 例如變數名maxval就比maxvalueuntiloverflow好用。單字元的名字也是有用的, 常見的如i,j,k,m,n,x,y,z等,它們通常可用作函式內的區域性變數。

【規則1-1-3】命名規則盡量與所採用的作業系統或開發工具的風格保持一致。

例如windows應用程式的識別符號通常採用"大小寫"混排的方式,如addchild。而unix應用程式的識別符號通常採用"小寫加下劃線"的方式,如 add_child。別把這兩類風格混在一起用。

【規則1-1-4】程式中不要出現僅靠大小寫區分的相似的識別符號。

例如:

int x, x; // 變數x 與 x 容易混淆

void foo(int x); // 函式foo 與foo容易混淆

void foo(float x);

【規則1-1-5】程式中不要出現識別符號完全相同的區域性變數和全域性變數,儘管兩者的作用域不同而不會發生語法錯誤,但會使人誤解。

【規則1-1-6】變數的名字應當使用"名詞"或者"形容詞+名詞"。

例如:

float value;

float oldvalue;

float newvalue;

【規則1-1-7】全域性函式的名字應當使用"動詞"或者"動詞+名詞"(動賓片語)。類的成員函式應當只使用"動詞",被省略掉的名詞就

是物件本身。

例如:

drawbox(); // 全域性函式

box->draw(); // 類的成員函式

【規則1-1-8】用正確的反義詞組命名具有互斥意義的變數或相反動作的函式等。

例如:

int minvalue;

int maxvalue;

int setvalue(...);

int getvalue(...);

1.2 簡單的windows應用程式命名規則

作者對"匈牙利"命名規則做了合理的簡化,下述的命名規則簡單易用,比較適合於windows應用軟體的開發。

【規則1-2-1】類名和函式名用大寫字母開頭的單詞組合而成。

例如:

class node; // 類名

class leafnode; // 類名

void draw(void); // 函式名

void setvalue(int value); // 函式名

【規則1-2-2】變數和引數用小寫字母開頭的單詞組合而成。

例如:

bool flag;

int drawmode;

【規則1-2-3】常量全用大寫的字母,用下劃線分割單詞。

例如:

const int max = 100;

const int max_length = 100;

【規則1-2-4】靜態變數加字首s_(表示static)。

例如:

void init(...)

static int s_initvalue; // 靜態變數

【規則1-2-5】如果不得已需要全域性變數,則使全域性變數加字首g_(表示global)。

例如:

int g_howmanypeople; // 全域性變數

int g_howmuchmoney; // 全域性變數

【規則1-2-6】類的資料成員加字首m_(表示member),這樣可以避免資料成員與成員函式的引數同名。

例如:

void object::setvalue(int width, int height)

m_width = width;

m_height = height;

【規則1-2-7】為了防止某一軟體庫中的一些識別符號和其它軟體庫中的衝突,可以為各種識別符號加上能反映軟體性質的字首。例如三維圖形標準opengl的所有庫函式均以gl開頭,所有常量(或巨集定義)均以gl開頭。

1.3 簡單的linux應用程式命名規則

【規則1-3-1】變數名必須有一定的意義,並且意義準確。

例如有乙個變數用於儲存圖書的數目,可以命名為number_of_book或者num_of_book。不建議使用i,因為它沒有意義。也不建議使用number或book,因為意義不準確。

【規則1-3-2】不建議大小寫混用。

如定義乙個計數變數,int ncount;這在windows中是乙個很好的變數名,其中ncount的首字母n用來說明這個變數的型別是int。但在linux下不建議大小寫混合使用,一般識別符號只由小寫字母,數字和下劃線構成。

【規則1-3-3】在失去意義的情況下,盡量使用較短的變數名。

例如有乙個變數,用於暫時儲存乙個計數值,把變數命名為tmp_count顯然要比this_is_a_temperary_counter好。

【規則1-3-4】不採用匈牙利命名法表示變數的型別。

如int ncount;n用於說明變數的型別,在linux中不建議這樣命名變數。

【規則1-3-5】函式名應該以動詞開頭,因為函式是一組具有特定功能的語句塊。

比如乙個函式,它用於取得外部輸入的數值,則可以命名為get_input_number。

【規則1-3-6】盡量避免使用全域性變數

看來linux命名規則是要完全顛覆windows的了,呵呵~~

1.4 宣告

C C 變數命名規則

變數命名規則是為了增強 的可讀性和容易維護性。以下為 c 必須遵守的變數命名規則 1 變數名只能是字母 a z,a z 和數字 0 9 或者下劃線 組成。2 第乙個字母必須是字母或者下劃線開頭。3 不能使用 c 關鍵字來命名變數,以免衝突。4 變數名區分大小寫。變數命名規則 一 用最短字元表示最準確...

C C變數命名規則

變數命名規則是為了增強 的可讀性和容易維護性。變數命名規則 一 用最短字元表示最準確的意義。二 使用變數字首。1 整型字首 int nid int字首 n short sid short字首 s unsigned int unid unsigned int 字首 un long lid long字首...

C C 命名規則總結

int kk ml,st int i,j k m n kk 0 ml 10 st kk ml 2 for i 0 i 8 i 這樣的 是真的看得人頭疼啊,kk,st這些是什麼鬼?所以我結合匈牙利命名法將程式設計過程中比較人性化合理化的命名規則進行總結 1.類名首字母大寫,若類名由若干單詞拼接,後面的...