部分匈牙利命名法

属性部分  
全局变量(Global) g_   
常量 (Constant) c_   
c++类成员变量(Member variable) m_   
静态变量 (Static) s_   


类型部分  
指针 (Pointer)  p   
函数 (Function) fn   
无效 (Invalid) v   
句柄 (Handler,多用于windows编程) h   
长整型(Long) l   
布尔 (Bool) b   
浮点型(有时也指文件)  f   
双字(Dword/doubleword) dw   
字符串 sz   
短整型 (Int) n   
双精度浮点 (Double) d   
计数  c(通常用cnt)   
字符 ch(通常用c)   
整型  n   
字节  by   
字  w   
实型  r   
无符号  u   


描述部分   
最大  Max   
最小  Min   
初始化  Init   
临时变量  T(或Temp)   
源对象  Src   
目的对象  Dest   

举几个简单的例子:  

int nCnt; // n表示类型为整形,Cnt为变量名,每个单词的第一个字母要求大写  
int* pCnt; // p表示指针变量  
static int g_nCnt; // int型全局变量,g_表示全局  
static int s_nCnt; // int型局部变量,s_表示静态  
float fBalance; // n表示类行为float形,Balance表示变量名是余额  
struct Graphic pEllipse; // 指向Graphic结构体Ellipse的指针  

后记:  
对于Linus等人来说,匈牙利命名法确实是一件让人感觉到很痛恨的事情.  
在Linux的命名法中,能简单就简单,能用int i;的地方就绝对不要用int nCnt;   
并且在{}的使用方式,自动缩进使用(hard tab)还是四个space上都有完全不同的风格。  
所以才会有下面的情况.  

--------------------  
code in Linux :  
...  
int i = 0;  
for(i = 0; i < 10; i++) {  
/*do something*/  
}  
...  

--------------------  
code in C++ :  
...  
int nCnt = 0;  
for(nCnt = 0; nCnt < 10; nCnt++)  
{  
 // do something  
}  

-------------------- 

你可能感兴趣的:(C++)