好多小伙伴对编码的格式作用模糊,以为只要完成功能就行,其实这种观点是错误的,一定要重视代码规范,不然你哭的地都找不到。
如何实施:
良好的代码开发习惯对人对己都是非常有用的,良好的代码开发习惯包括,方法封装的独立性,注释添加的合理性,代码布局书写的工整性,当然这些东西没有写的很好也不影响程序的编译与运行,也就是说在初期开发的时候是不受什么影响的,但是对于后期的维护与他人的对你的代码维护就能显示出这方面的重要性了;
今天主要跟大家分享一下一个在程序员这个地方一种公认的书写规范,可以说总结的还是相对全一些的,希望可以对大家有帮助,篇幅可能有点长,如果一篇文章写不完,我会把部分内容放到第二篇中;
一、代码变量命名规范
1),通用的变量:循环loop,计数count,累加sum
2)、与功能相关:
用于记录数据_reg (register:记录),
标志位_flag
注解:如果需要用到这样功能的,描述放到变量名之后,例如***_flag,***_reg
3)、与范围相关:全局变量 g
局部变量 local —— l
静态变量 static —— s
被外部引用 extern —— e
例: 全局变量 :g***,局部变量:l***,静态变量:s***, 被外部引用:e***;
注解:静态变量只能出现在局部变量里,被外部引用只能出现在全局变量里,所以对于一个变量而言,此处与范围相关的描述只能有一种可能。
4)、数据类型:bool —— b
byte —— by
float —— f
double —— d
char —— c
int —— i (如果变量类型有unsigned的,在描述符后加上u,例iu)
结构体变量 —— s (例如struct Long_Time ls_timer,局部结构体变量)
例: bool :b***,byte:by***,float:f***, double:d***,char:c***,int:i***,int unsigned:iu,结构体变量:s***;
注解:此处结构体变量与静态变量都用s描述,只是描述等级不一样(描述等级为一个变量首先要反映出来的信息描述为最高!),而且不能用静态方式定义结构体变量的,结构体变量只有全局或局部之分
5)、指针的描述放到所有描述之前(如果用到指针的话)
指针 —— p
二重指针 —— pp(以此类推)
注解:例如int *pli_timer=&gi_sum;
变量命名公式:变量名=范围描述+数据类型+变量名英文释义
6)、命名中若使用特殊约定或缩写,则要有注释说明
注解:应该在源文件的开始之处,对文件中所使用的缩写或约定,进行必要的注释说明
7)、自己特有的命名风格,要自始至终保持一致,不可来回变化(最好整理一个说明的文档的,方便别人的理解);
二、代码格式书写规范
1)、程序块要采用缩进风格编写(缩进空格以source singht的一个“Tab”键为基准,四个字节)
public test(){
****//语句块
}
2)、定义所有局部变量后需要加个回车空行
private int i;
//、空行
private int j;
3)、一行只写一条语句,即不允许把多个短语句写在一行中
4)、if、for、do、while、case、switch、default等语句自占一行,且无论执行语句的多少都要加括号{ },且程序块的分界符‘{’和‘}’应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
注解:形如if(*********)
{
return 0;
}
5)、if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出明显
6)、if语句尽量加上else分支,对没有else分支的语句要小心对待;switch语句必须有default分支
7)、逗号、分号只在后面加一个空格
注解:例如for(loop=0; loop<100; loop++)或int loop=0, num_reg=0;
8)、比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格
注解:例如 if (current_time >= MAX_TIME_VALUE)
a = b + c;
a *= 2;
a = b ^ 2;
9)、"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格(例如i++)
10)、"->"、"."前后不加空格