思维艺术决定你的高度
首先你要了解有哪些命名规则,请看这篇文章:
链接: 编程常用的命名规则
经常使用的几种命名方法:小驼峰(变量)、大驼峰(类名、变量空间)和下划线命名法。
变量名命名的艺术总论
一个好的变量名不是及时的效果,而是长期效益。
a.定义一个变量之后几个小问题:
1.这个变量是什么意思
2.这个变量在这个程序中起到了什么作用
3.过段时间看自己代码(或者发给朋友之后)拿到代码看到这个变量的时候能明白是什么意思吗
b.好的命名是什么样的?
定义一个余额的变量:double balance = 100.00;
定义一个闰年的变量(C用下划线命名法,单词全部不要大写):bool is_leap_year;
C语言创建文件的时候也用下划线命名法后面加.c
接下来定义的变量是需要用户用键盘来输入的,那你可以在变量名前面加入input,例:
input_stu_data;表示需要输入的学生信息
(Java用驼峰):bool isLeapYear;
tips:定义名第一个单词一般是动词
例:
//定义一个当前的日期
//正确的:
int currentDate;//(current当前的)
你要知道你定义的变量是干什么的,比如你在写一个财务报告系统,你定义一个sum函数,大家就不知道你要干
什么,sum是有歧义的,所以在财务报告中一般不要定义sum,你可以定义calc(计算)。
如:calc_value(计算值)或者calc_val或者calcVal
单词虽然有千万个意思,但是在学术界是一条规范。
c.变量名需要的特性:
可读性、容易记、恰如其分、一眼就能看出来你要干啥、不能太冗长 (要取舍)
变量名命名长短直接影响到软件后期的维护和调试、
变量名命名长度最好保证在10到16字符长度的时候(国内一般企业要求9到15个或者8到20个),调试程序的时候 将工作量将到最低。
变量名命名一定是有讲究的,非常有讲究、、、
例:
定义参加奥林匹克运动员数量步骤:首先确定类型是uint numTeamMember;(驼峰)
int num = 0;变量规范,有没有空格,是哪种风格…非常重要
d.变量名命名
变量名命名考虑作用域(不同地方不同命名):
例如:
for (int i = length - 1; i >= 0; i--)
{
for (int k = length - 1; k >= 0; i--)
{
//OOTD
}
}
这种定义int i、k这种命名i、k只用作于for循环的里面,作用域(使用的范围就呢么大)你可以定义成这样,但是如果你想让i走出for,变成全局变量不做局部变量,所以就不能再次因为会出现歧义。你定义在for里面他就是个计数器,没有什么实际意义所以可以。
特别短的变量名适合局部变量,长的适合全局变量,所以这个变量名越短,那这个变量的作用域就越短越短。
for里面的i和k起到了计数器的这么一个作用,,,
e.变量名计数词的选用
sum、avg、average、max、min、total...
//total 共计多少
//使用这些的时候注意
//例如如果你要写员工的总量不介意使用sum,使用total会更好
int total_employees;、
//这种命名代表含义,一眼可知,total前后都可以,后面可能你看着就比较专业?
//num_employees和employee_num是有歧义的,员工数量?员工号?(一般不使用sum、num这种去命名,会有歧义)
//单词后面加不加s也很重要+可能表示数量不+可能是表示员工号?、、、
正确表示:
int employees_total;
int employees_index;
//这种差不多了,好像一样,但能一眼看出差别。前后看习惯啦,重要看企业规定,,,
f.编程对立词掌握有利于使用
//up down
//old new
//first last
//min max
//opened closed
//locked unlocked
//begin end
//...
g.常量,宏,指针的一些风格
#define NUM_FIVE 5
//这是啥??? 变量里说是five了你还在后面写5
//常量应该表示可能略有抽象的东西,而不是具体的数字。上述写法错误
(你可以表示一个数组的大小什么的)
//例如:
//在定义指针变量的时候 可以这样定义:
int* pSize;
//这个变量无论去哪里都表示它是指针类型
int iNumber;
//int定义的变量就可能这么写
//匈牙利命名法(习俗)(知道就行)
h.循环计数器i,j,k
C语言中宏用的多,C++就用的很少…
循环内(里面)使用int i,j,k这些变量的话,是允许的。但是如果这样的话
int i;
for( i = 1 ; i < 10 ; i ++){
data[i] = j;
}
这样将i定义到外面的话,这么写是有问题的。(不对的)
因为这个i可能会被for循环以后的代码应用到,形成所谓的变量污染(是个垃圾数据)(没有被有效管理)。
如果如果你不仅仅用在for中,for后边还会用到,你可以这么写:
int record_count = 0;
while ( xxxxx ){
record_count ++ ;
}
这个东西就可以计数,,,假如你后面可能还会用到它、、、
在循环嵌套很多的时候,你就老老实实把int i,j这些改了,因为你用这些当作数组的下标,你根本不知道你在干什么,这样玩谁都受不了…
将i和j改成你能看懂的变量,就能看懂了,就不容易写错了,这是你的出路…
i.枚举命名
后续更新
j.临时变量的讲究
temp作为临时变量但在后面要用到temp前面就不要用到temp、、、
不像在for循环里面定义temp,出了for语句,就没了.
或者你在开头定义一个temp后面再也不重新定义,也能说过去、、、
看情况,,,就是如果接下来定义的变量有用的话,那就不要将变量定义成temp
you know???