您的位置:首页 > 其它

个人喜欢的命名方法

2012-05-12 23:27 211 查看
不同的团体使用不同的匈牙利命名体系。尽管一些事相同的,但是很多还是有很多有所区别。

我们为每个数据类型使用不同的前缀是过度的(overkill),尤其对与struct和class。而且长的匈牙利命名会适得其反。因此,我们提倡是使用简单的匈牙利命名体系,叫做:caste Hungarian。

变量的前缀由三个部分组成:范围修饰,类型修饰,类型前缀。前两部分也许是不适用的。因此,全部的前缀长度都是合理的,平均前缀长度在2个字符左右。这个体系包含了很多匈牙利标记法的优点,并且将很多缺点排了出去,使得整个体系简单,容易。
Type prefixMeaningExample
bbooleanbool bHasEffect;
c (or none*)classCreature cMonster;
chchar (used as a char)char chLetterGrade;
ddouble, long doubledouble dPi;
eenumColor eColor;
ffloatfloat fPercent;
nshort, int, long

char used as an integer
int nValue;
sstructRectangle sRect;
strC++ stringstd::string strName;
szNull-terminated stringchar szName[20];
The following type modifiers are placed before the prefix if they apply:
Type modifierMeaningExample
aarray on stackint anValue[10];
ppointerint* pnValue;
padynamic arrayint* panValue = new int[10];
rreferenceint rnValue;
uunsignedunsigned int unValue;
The following scope modifiers are placed before the type modifier if they apply:
Scope modifierMeaningExample
g_global variableint g_nGlobalValue;
m_member of classint m_nMemberValue;
s_static member of classint s_nValue;
一些注意:

1. 这些距离并不是详尽的,它包含了大部分情况。如果你觉得不同类型变量值得具有它自己的前缀,自己赋一个

2. 使用具有具体含义的变量名,能够很好的分别它们。这在struct和class中尤为重要。如Rectangle sWindowRect比Rectangle sWindow要好的多

3. char被用作ASCII字符和integer时,有不同的前缀,能够分清它的用途。

4. float和double具有不同的前缀。

5. typedefs 不适合这个体系

6. 当一个变量是class的引用或指针时,‘c'是被禁用的。

7. 因为整型变量没有被很好的区分,你很容易将一个大的整型变量改变成小的变量类型,而没有改变名字。但是,这样可能会引起溢出的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: