标识符名称定义相关编码准则II
本文是接着上篇的命名规则写的,上一篇绝对满满的细节干货: link.
1、用有意义的名称命名
- 举个例子,你自己觉着这种命名有啥含义吗?输入值,输入个啥类型呢??????
int input1,input2,input3,input4,input5;
int input6,input7,input8,input9,input10;
....
- 采用有意义的变量名:
/* 个人装备组件的个数*/
/*变量前面的 i 表示变量是 int 型*/
/*No表示该变量存储的个数*/
/*Helmet表示变量存储的是头盔(helmet)的个数*/
int iNoHelmet;
int iNoRifle;
int iNoRifleshot;
int iNoArmyknife;
- 最后强调一下,标识符的名称一定要有意义。
2、不要使用相似的变量名
- 使用相似的变量名,编程过程中容易混淆,比如:
/* 说实话,我自己看着都晕,代码多起来的话*/
int num;
int number;
- 如何避免呢??
- 可以在原名称后面添加前缀或后缀,或者添加恰当的英文字母:
int number_01;//加数字
int number_02;
int day_yy;//加字母
int day_mm;
int day_dd;
int iTotal;//前缀有时比后缀有效
double dTotal;
3、在不影响含义的前提下尽可能简短命名
- 不论是变量还是函数命名,差不多得了,别搞太长,简短有效就行
程序员惯用缩写:
单词 | 缩写 |
---|---|
function | func |
number | num |
day | d或dd |
month | m或mm |
year | y或yy |
temporary | temp |
terminate | end |
terminal | term |
- 挺实用的,默默记住就行,下次别问那么多为什么了,惯例
4、用下划线和大小写区分较长变量名
- 变量名太长了,最好将单词加以区分
- 两种方法,加下划线标注,或将单词首字母大写
Break_control_system_panel();//加下划线标注
BreakConTrolSystemPanel();//将单词首字母大写
- 第一种方法较常见,第二种方法的使用率高
- 还有一种就是将单词缩写,并将首字母大写,用下划线区分不可缩写的单词
BrkCtlSys_panel();
- 人们偏爱这种混合方法的原因是,缩写后的单词很容易被识别。
5、变量名不要以下划线开始
- 这是强制规定,记住就行。
- 一旦程序员用下划线作为变量名的开始,那么就相当于破坏了头文件编写者假定的先决条件,进而导致程序出现问题。
6、不要过度使用下划线
- 遵循只使用一个下划线的原则。
- 太多了,会把自己搞晕的,程序出错可能性会更大的
7、合理使用大小写命名标识符
7.1 程序员命名变量时区分大小写相关惯例:
- 变量和对象名以小写字母开始。
- 函数、类、结构体、共用体等名称以大写字母开头(包括方法)。
- 符号常量或宏函数名的所有字母均大写。
- 这些惯例虽然不是强制性的,但几乎所有程序员都遵循
int myPhone;//变量
struct Student{
//结构体
...
}
void Print();//函数名
#define PI 3.14//宏定义
7.2 不要滥用大小写区分
- 下面这种写法虽然没有语法问题,但是可读性大大下降,阅读代码的人容易混淆
int iMyNumber = 10000;//大数值
int iMynumber = 10;//小数值
- 区分大小写仅适用于下面的特殊情况
- 函数名或类名以大写字母开始
- 变量名以小写字母开始
- 符号常量名的所有字母均大写
9、不能用相同名称同时命名类和变量
- 仅用大小写区分类名和变量名
class Myclass {
....
};
MyClass myclass;
- 这段代码中,MyClass是用户自定义数据类型,之后的myclass是用相应数据类型声明的变量。区分并不是很明显。
- 正确的做法是应该明确区分类名和变量名,并为变量名添加从类名截取的前缀
class MyClass {
...
};
MyClass mcFirstVar;//mc代表MyClass的前缀
10、小结
到这里,变量名命名的规则基本结束了,小细节很多,要想成为一名高级的程序员,这些细节都是必备的。加油,程序人!一起进步吧,欢迎大家给我指正,如有不对的地方。