0.前言
初学者的代码通常难以吐槽......如果你在百度上搜索,可以搜索到很多很多文章
我们不在这展开来讲,因为规范不是协议,是由个人或者公司规定的,不一定统一,每个人对代码规范的理解都是不同的,我们讲的规范是一个大致的结构,将来大家还是要按照公司或者文档上的规范因地制宜。
---------------------------------------
这里推荐阿里的Java开发手册:www.aliyundrive.com/s/ZU8fGNMmW…
----------------------------------------
编码规范(C++): www.aliyundrive.com/s/cTwTx4bcJ…
----------------------------------------
编码规范(Java): www.aliyundrive.com/s/59i7GZ7cE…
1.空格&缩进&大括号
#include<stdio.h>
int main()
{printf("hello world");
return 0;
}
-
include后面与有文件之间要加上一个空格
-
printf前面要用四个空格,并且换行,关于是否使用tab键还是四个空格是有争论的,四个空格的话,在不同的编辑器中都是四个空格,编辑器上如果调整了制表符不是4时就会出现其他情况
上面这段代码可读性没什么问题,因为比较短
#include <stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
if (a > b){
printf("%d\n",a);
}
else{
printf("%d\n",b);
}
return 0;
}
-
上面这串代码,第6行,一段新的代码块应当使用缩进
-
在C中,大括号可以写在下面,在java中大括号的开始是写在上面的,但是不能串用,如果写了一种风格就要全部应用同种风格
#include <stdio.h> int main(void){ int a = 10; if (a < 10) printf("A is less than 10.\n"); else{ printf("A is greater than 10.\n"); } return 0; }
-
在if语句只有一句话的时候,一般还是建议使用大括号包裹代码块,这样层次更有结构感,并且在你需要添加语句的时候更方便,如果不写大括号包括,那么两句话只有第一句话是可以被if执行,Python除外,因为Python使用缩进来表示代码块
#include <stdio.h> int main(void){ int a=10; if (a<10) printf("A is less than 10.\n"); else{ printf("A is greater than 10.\n"); } return 0; }
-
在很多代码规范中,都有明确强调过使用双目运算符左右两边都要加上空格,这个不会报错但是对代码的美观有很大的提升。不过很多人会忽略这个细节,因为有规范检查工具的编辑器一般在保存时都会修正这个规范。
2.命名规则
-
有些变量名代码规范中强制要求不能使用'a','b','c'对项目中的变量进行命名,一般使用该变量名的英文单词进行命名,或者有明确通用含义的n(m)、x(y)、i、j、k等优先
-
几个常用的英文单词:sum和、product积、count计数、max最大值、min最小值、size大小
-
华为C语言编程规范:
3-1标识符的命名要清晰明了,有明确含义,同时要使用完整的单词或大家基本可以理解的缩写,一些单词大家有工人的缩写。示例:-
temp(temporary,暂时的临时的)可缩写为tmp
-
flag(标识)可以缩写为flg
-
statistic(统计)可缩写为stat
-
increment(加一)可缩写为inc
-
decrement(减一)可以缩写为dec
-
message(消息)可缩写为msg
-
value值-->val
-
addition-->add加
-
subtraction-->sub减
-
multiplication-->mul乘
-
divide-->div除
-
modulus-->mod取余
-
index-->idx
-
position-->pos
-
array-->arr
-
-
一些细节:
- list_primes-->list_all_primes
驼峰命名法(camel Case)-->首字母大写叫大驼峰命名法,首字母不大写叫做小驼峰命名法-->Java中通常使用,如:IsPrime[ai]
C\unix系统\GNU(读音new)规定使用下划线连接起来,如:list_primies
- 以上两种命名法在不同的环境中按照规范使用,如在js中使用下划线命名,在html中使用的是'-'连接
3.注释
-
注释不是越多越好,可能会导致混乱
-
当代码段过长时需要添加注释,所以一般不建议行注释,有些规则校验强制要求不能把注释放在代码的同一行
-
一个代码文件开始部分需要注释
-
一个函数需要在写函数名前写上注释说明该函数的功能,以及如果有参数需要把说明参数的作用
/** *@Author: admin *@Description: Demo *@Date: Created in 19:59 下午 2022/10/6 *@Modified By: */ #include <stdio.h>
/** *在数组中查找出最大值的位置 *@param arr 一个数组 *@param n 数组的长度 *@return 最大值的下标 */ int find_max_pos(int arr[],int n){
}
----------------------------------
最后说明一下,代码规范要从小(初学时)养成,后面会更快适应,在很多厂面试的时候会看你的代码风格,以及为后面团队开发提供良好的习性。
-----------------------------------
参考资料:
[1]【原创教程】代码规范】 www.bilibili.com/video/BV1hs…