常見的程式命名規則

2021-09-01 05:01:38 字數 2827 閱讀 1725

正確並形象地給函式、變數命名,不僅可以增加程式的可讀性,也是程式設計師程式設計風格的一種反映。較好的命名習慣,可以有效的提高程式的可維護性。以下介紹幾種常用的變數命名規則。

一、匈牙利命名法:廣泛應用於microsoft windows這類環境中。

這種命名技術是由一位能幹的 microsoft 程式設計師查爾斯·西蒙尼(charles simonyi) 提出的。匈牙利命名法通過在變數名前面加上相應的小寫字母的符號標識作為字首,標識出變數的作用域,型別等。這些符號可以多個同時使用,順序是先m_(成員變 量),再指標,再簡單資料型別,再其他。例如:m_lpszstr, 表示指向乙個以0字元結尾的字串的長指標成員變數。

匈牙利命名法關鍵是:識別符號的名字以乙個或者多個小寫字母開頭作為字首;字首之後的是首字母大寫的乙個單詞或多個單詞組合,該單詞要指明變數的用途。

例如:benable, nlength, hwnd。

匈牙利命名法中常用的小寫字母的字首:

字首 型別 描述

a array 陣列

b bool 布林

by byte 無符號字元

c char 字元

cb count of bytes 位元組數

cr color reference value 顏色值

cx,cy count of x,y(short) 長度

dw dword 雙字(無符號長整形)

f flags 標誌

fn function 函式

g_ global 全域性的

h handle 控制代碼

i integer(int) 整數

l long(long) 長整數

lp long point 長指標

m_ data member of a class 類的資料成員

n short(short) 短整型

np near point 短指標

p point 指標

s string 字串

sz zero terminated string 以0結尾的字串

tm text metric 文字規則

u unsigned int 無符號整數

ul unsigned long(ulong) 無符號長整數

w word 無符號短整數

x,y x,y coordinates(short) 座標

v void 空

有關專案的全域性變數用g_開始,類成員變數用m_。

字首 型別 例子

c 類 cdocument, cprintinfo

m_ 成員變數 m_pdoc, m_ncustomers

g_ 全域性變數 g_servers

二、駝峰命名法:近年來越來越流行。

駝峰命名法,正如它的名稱所表示的那樣,指的是混合使用大小寫字母來構成識別符號的名字。其中第乙個單詞首字母小寫,餘下的單詞首字母大寫。

例如:printemployeepaychecks();

函式名中每乙個邏輯斷點都有乙個大寫字母來標記。

三、帕斯卡(pascal)命名法:與駝峰命名法類似。

只不過駝峰命名法是第乙個單詞首字母小寫,而帕斯卡命名法則是第乙個單詞首字母大寫。因此這種命名法也有人稱之為「大駝峰命名法」。

例如:displayinfo();

username

都是採用了帕斯卡命名法。

在c#中,以帕斯卡命名法和駱駝命名法居多。

事實上,很多程式設計者在實際命名時會將駝峰命名法和帕斯卡結合使用,例如變數名採用駝峰命名法,而函式採用帕斯卡命名法。

四、下劃線命名法。

下劃線法是隨著c語言的出現流行起來的,在unix/liunx這樣的環境,以及gnu**中使用非常普遍。

4.1 函式的命名

函式名使用下劃線分割小寫字母的方式命名:

裝置名_操作名();

操作名一般採用:謂語(此時裝置名作為賓語或者標明操作所屬的模組)或者謂語+賓語/表語(此時裝置名作為主語或者標明操作所屬的模組) 等形式,如:

tic_init();

adc_is_busy();

uart_tx_char();

中斷函式的命名直接使用 裝置名_isr() 的形式命名,如:

timer2_isr();

4.2 變數的命名

變數的命名也採用下劃線分割小寫字母的方式命名。命名應當準確,不引起歧義,且長度適中。如:

int length;

uint32 test_offset;

單字元的名字也是常用的,如i, j, k等,它們通常可用作函式內的區域性變數。tmp常用做臨時變數名。

區域性靜態變數,應加s_詞冠(表示static),如:

static int s_lastw;

全域性變數(尤其是供外部訪問的全域性變數),應加g_詞冠(表示global),如:

void (* g_capture_hook)(void);

4.3 常量及巨集的命名

採用下劃線分割大寫字母的方式命名,一般應以裝置名作為字首,

防止模組間命名的重複。如:

#define timer0_mode_reload 2

#define timer2_count_retrieve(val) ((uint16)(65536 - (val)))

當然,看作介面的巨集可以按照函式的命名方法命名,例如:

#define timer2_clear() (tf2 = 0)

#define timer0_is_expired() (tf0)

據考察,沒有一種命名規則可以讓所有的程式設計師贊同,程式設計教科書一般都不指定命名規則。命名規則對軟體產品而言並不是「成敗悠關」的事,我們不要化太多精力試圖發明世界上最好的命名規則,而應當制定一種令大多數專案成員滿意的命名規則,並在專案中貫徹實施。

常見架構命名規則

1.介面一般會包含乙個process 方法 public inte ce ieventhandler handlercontext 類包含 invoke public static taskinvoke handlercontext context,object data,taskcompletio...

簡單的程式命名規則

類名和函式名用大寫字母開頭的單詞組合而成。class node 類名 class leafnode 類名 void draw void 函式名 void setvalue int value 函式名對於成員函式,成員函式的首字母小寫。class node 類名 class leafnode 類名 v...

程式板式 命名規則

1 空行與 行 rule1 在每個類宣告之後 每個函式定義結束之後都要加空行 rule3 一行 只做一件事情 rule4 if for while do等語句自佔一行,執行語句不得緊跟其後。2 對齊 3 長行拆分 4 注釋 5 類的版式 類可以將資料和函式封裝在一起,其中函式表示了類的行為 或稱服務...