属性部分
全局变量(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
}
--------------------