代码规范

181 阅读3分钟

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…