匈牙利命名法

2021-03-31 08:56:58 字數 1461 閱讀 2974

該約定是由生於匈牙利布達佩斯的charles simonyi 開發的,它通過在資料和函式名中加入額外的資訊以增進程式設計師對程式的理解。例如:

char ch; /* 所有的字元變數均以ch 開始 */

byte b; /* 所有的位元組均冠以b */

long l; /* 所有的長字均冠以l */

對於指向某個資料型別的指標,可以先象上面那樣建立乙個有型別的名字,然後給該

名字加上字首字母p:

char* pch; /* 指向ch 的指標以p開始 */

byte* pb; /* 同理 */

long* pl;

void* pv; /* 特意顯用的空指標 */

char** ppch; /* 指向字元指標的指標 */

byte** ppb; /* 指向位元組指標的指標 */

匈牙利式名字通常不那麼好念,但在**中讀到它們時,確實可以從中得到許多的信

息。例如,當你眼看到某個函式裡有乙個名為pch 的變數時,不用檢視宣告就立即知道它

是乙個指向字元的指標。

為了使匈牙利式名字的描述性更強.或者要區分兩個變數名,可以在相應型別派生出

的基本名字之後加上乙個以大寫字母開頭的「標籤」。例如,strcpy 函式有兩個字元指標

引數:乙個是源指標,另乙個是目的指標。使用匈牙利式命名約定,其相應的原型是:

char* strcpy(char* pchto, char* pchfrom); /* 原型 */

在上面的例子中,兩個字元指標有乙個共同的特點 ── 都指向以0 為結尾的c 的字

符串。因此在本書中,每當用字元指標指向字串時,我們就用乙個更有意義的名子str

來表示。因此,上述strcpy 的原型則為:

char* strcpy(char* strto, char* strfrom) /* 原型 */

本書用到另乙個型別是ansi 標準中的型別size_t。下面給出該型別的一些典型用

法:size_t sizenew, sizeold; /*

原型 */

void* malloc(size_t size); /*

原型 */

void* realloc(void* pv, size_t sizenew); /* 原型 */

函式和陣列的命名遵循同樣的約定,名字由相應的返回型別名開始,後跟乙個描述的

標籤。例如:

ch = chlastkeypressed; /* 由變數得一字元 */

ch = chinputbuffer; /* 由陣列得一字元 */

ch = chreadkeyboard; /* 由函式得一字元 */

如果利用匈牙利式命名方法,mall~和reali~可以寫成如下形式:

void* pvnewblock(size_t size); /* 原型 */

void* pvresizeblock(void* pv, size_t sizenew); /* 原型 */

匈牙利命名法

匈牙利命名法 匈牙利命名法是一種程式設計時的命名規範。基本原則是 變數名 屬性 型別 物件描述,其中每一物件的名稱都要求有明確含義,可以取物件名字全稱或名字的一部分。命名要基於容易記憶容易理解的原則。保證名字的連貫性是非常重要的。舉例來說,表單的名稱為form,那麼在匈牙利命名法中可以簡寫為frm,...

匈牙利命名法

匈牙利命名法是一種程式設計時的命名規範。基本原則是 變數名 屬性 型別 物件描述,其中每一物件的名稱都要求有明確含義,可以取物件名字全稱或名字的一部分。命名要基於容易記憶容易理解的原則。保證名字的連貫性是非常重要的。舉例來說,表單的名稱為form,那麼在匈牙利命名法中可以簡寫為frm,則當表單變數名...

匈牙利命名法

匈牙利命名法 匈牙利命名法是一種程式設計時的命名規範。基本原則是 變數名 屬性 型別 物件描述,其中每一物件的名稱都要求有明確含義,可以取物件名字全稱或名字的一部分。命名要基於容易記憶容易理解的原則。保證名字的連貫性是非常重要的。舉例來說,表單的名稱為form,那麼在匈牙利命名法中可以簡寫為frm,...