2010-08-11 106 views
1

容易的問題你去那裏:CString變量名稱前綴

什麼是接受(假設有一個...)前綴爲CString變量名?爲了澄清,我已經看到了以下其他數據類型:

int iIndex; //integer 
int* pIndex; //pointer 
bool fFlag; //bool flag 

而且還有無數的其他數據。請隨時讓我知道這是否真的是一個非問題或「隨意」的答案。

+0

'CString CStringName;'? – UncleBens 2010-08-11 18:49:02

回答

3

前綴如那些是匈牙利表示法的概念的濫用。

HN的想法是變量的前綴爲代碼,其描述了其使用。例如,保存某物的計數的變量將以前綴cnt爲前綴;持有指數的變量將以inx爲前綴。持有標誌的變量的前綴爲f。一個變量持有一個數字(這不是一個計數或索引或其他常見)將加上前綴n

不過,很快人們偷懶,(並在很大程度上歸因於最後一個例子)和前綴開始只是數據類型的指示。這在C中有一些用處,變量的聲明必須位於函數的頂部,可能與使用位置有一定的距離。 (尤其是當代碼寫在一個簡單的文本編輯器)

但是,最終,我們得到了更多的類型安全的語言,以及更好的集成開發環境,所以仿匈牙利命名法,因爲不必要的蔑視。

+0

完美,這正是我想知道的,在我所需要的細節之外,它超越了純粹的文體風格。謝謝。 – 2010-08-11 19:01:58

1

變量名中沒有標記符號。事實上,在更好的開發環境下(智能感知等),這是非常不必要的。

1

我見過使用「s」。例如:sIndexname。

我使用用於數據成員「m」個:MINDEX,和「p」爲一個指向一個數據成員:mpIndex。我只將它們用於類作用域變量。而已。

按照今天的「標準」,甚至是推動它。 AFAIK,除了一些微軟頑固分子匈牙利符號已經死亡。當我看到它用於僅在2行後使用的局部變量時,我感到特別有趣。樂趣。

出於某種原因,我對「M_」公約擊退。這只是醜陋的,imo。 :-)