编程总是浪费时间考虑变量名。

好的编程习惯很重要。

第三章命名规则

众所周知的命名规则应该是基于微软的“匈牙利”方法。这个命名规则的主要思想是

给变量和函数名加上前缀,以提高人们对程序的理解。例如,所有字符变量都以ch开头。

是前缀,如果是指针变量,则追加前缀p。如果变量以ppch开头,则表明它是一个指向字符。

指针的指针。

“匈牙利”法最大的缺点就是繁琐,比如

int i,j,k;

浮点x,y,z;

如果采用“匈牙利”的命名规则,应写成如下

int iI,iJ,ik;//前缀I表示int类型。

浮点fX,fY,fZ;//前缀f表示浮点类型。

如此繁琐的程序,会让大部分程序员无法忍受。

据调查,并没有一个所有程序员都能认同的命名规则,编程教材一般也不会参考。

设置命名规则。命名规则对于软件产品来说并不是一个“成败”的问题,不要花费太多精力。

试图发明世界上最好的命名规则,我们应该制定一个让大多数项目成员满意的命名规则。

并在项目中实现。

3.1 ***性规则

本节讨论的* * *性规则是大多数程序员都采用的,我们之前也应该遵循这些* * *性规则。

接下来,展开具体的规则,比如3.2节。

规则3-1-1标识符应该是直观的、拼写可读的,并且期望不用“解码”就能理解意思。

最好使用英语单词或其组合,便于记忆和阅读。千万不要用汉语拼音来命名。

节目中的英文单词一般不会太复杂,用词要准确。例如,不要将当前值写成

现在价值.

规则3-1-2标识符的长度应符合“最小长度”的要求。最大信息量”原则。

几十年前,旧的ANSI C规定名字不能超过6个字符,但是今天的C++/C已经没有这个限制了。一个

一般来说,长名字更能表达意思,所以函数名、变量名、类名长度超过十个字符是不够的。

奇怪。所以名字越长越好?不一定!例如,变量名maxval比maxValueUntilOverflow更好

好用。单字符的名字也很有用,比如I,j,k,m,n,x,y,z等。它们通常可以用作函数。

中的局部变量。

规则3-1-3命名规则应与所采用的操作系统或开发工具的风格保持一致。

比如Windows应用的标识符通常是大小写混合的,比如AddChild。但是

Unix应用程序标识符通常用小写下划线,如add_child。不要把这两种风格混在一起。

规则3-1-4仅通过大小写区分的类似标识符不应出现在程序中。

例如:

int x,X;//变量X和X很容易混淆。

void foo(int x);//函数foo和FOO容易混淆。

void FOO(float x);

规则3-1-5在程序中没有标识符相同的局部变量和全局变量,尽管它们都是

范围不一样没有语法错误,但是会有误导。

规则3-1-6变量名应使用“名词”或“形容词+名词”。

例如:

浮点值;

float旧值;

浮点新值;

规则3-1-7全局函数的名字应该用“动词”或者“动词+名词”(动宾短语)。

一个类的成员函数应该只用“动词”,省略的名词就是对象本身。

例如:

DrawBox();//全局函数

框->;draw();//类的成员函数

规则3-1-8用正确的反义词命名具有互斥意义的变量或具有相反作用的函数。

例如:

int minValue

int maxValue

int SetValue(…);

int GetValue(…);

建议3-1-1:名称中尽量避免数字,如Value1、Value2等。,除非合乎逻辑。

你真的需要一个数字。这是为了防止程序员偷懒,不肯为命名动脑,导致名字毫无意义。

单词(因为用数字编号最简单)。

3.2简单的Windows应用程序命名规则

笔者对“匈牙利”的命名规则进行了合理的简化,以下命名规则简单易用且适用。

Windows应用软件的开发。

规则3-2-1类名和函数名由以大写字母开头的单词组成。

例如:

类节点;//类名

类LeafNode//类名

void Draw(无效);//函数名

void SetValue(int value);//函数名

规则3-2-2变量和参数由以小写字母开头的单词组成。

例如:

布尔标志;

int drawMode

规则3-2-3常量都是大写字母,单词之间用下划线隔开。

例如:

const int MAX = 100;

const int MAX _ LENGTH = 100;

规则3-2-4静态变量以s_(表示静态)为前缀。

例如:

无效初始化(…)

{

static int s _ initValue//静态变量

}

规则3-2-5如果你需要一个全局变量,在它前面加上g_(代表全局)。

例如:

int g _ howManyPeople//全局变量

int g _ howMuchMoney//全局变量

规则3-2-6类的数据成员以m_(表示成员)为前缀,这样可以避免数据成员和

成员函数的参数同名。

例如:

void Object::SetValue(int width,int height)

{

m_width =宽度;

m_height =高度;

}

规则3-2-7为了防止软件库中的某些标识符与其他软件库冲突,您可以

各种标识符都有前缀,以反映软件的性质。比如三维图形标准OpenGL的所有库函数。

都是以gl开头,所有常量(或者宏定义)都是以GL开头。

——摘自芮林的高质量C++/C编程指南。

建议你有空的时候看看原著。

绝对让你受益匪浅。