zoukankan      html  css  js  c++  java
  • 编程入门之编码风格

      作为编程的工作人员,代码风格也是非常重要的。编译器一般不会挑起难看的代码,能够顺利编译的代码不一定是好代码,好的代码一定能够顺利编译,怎么才能写出好代码。好的代码是需要好的风格的。本人主要是在linux下编程,所以编程风格主要是使用linux内和风格。

    一、标识符,变量名、函数名、常量、结构类型名、枚举类型名、联合类型名、自定义类型名等

      1、禁止使用函数拼音作标识符,更不容易理解;

      2、标识符只能有字母(大小写),下划线(_)和数字构成,不能以数字开头表示的组合,表示特定含义的符号即可;标识需有明确的含义;

      3、标识符可以用完整的单词或易于理解的缩写,短单词去掉元音形成缩写,长单词取头几个字母即可,需要积累即可;

      4、标识符宏定义或常量常用全大写标识,其他,基本都是用小写;

      5、标识符可以采用驼峰式命名,除了首单词首字母小写,其他单词首字母是大写;可以用_分割单词,建议不用;

      6、全局变量或全局函数的命名可以多用几个单词明确标识符的功能;

      7、尽量不要使用单字母的变量名称,除了for循环中i、j和k之外的任何变量;

    二、空白

      1、空白包括空行、空格和Tab等,代码中加上适当的空白,降低代码的密度,令代码显示更加美观

      空行:代码中的逻辑段路之间往往使用空行分开,例如:函数与函数实现之间,定义语句与执行语句之间与返回语句之间都应使用空行分开

      空格:主要用来区别不同内容(关键字,符号、运算符、标点等)。

      1、if、while、else和for等后的左小括号与关键字之间插入一个空格,控制表达式与左右小括号之间不加空格,如:while (1);

      2、双目运算符(=,+,>)等两侧各插入一个空格,单目运算符(++、-、&、!)等与操作数之间不能加空格;

      3、后缀运算符(.)、函数调用foo(arg1)、取数组成员a[i]都不需要加空格;

      4、标点符号(, ;)后家上空格;

      5、unix标准终端字符是24行80列,大于80个字符的长语句尽量折行写,折行后的语句要尽量和先前语句左对其,使用tab调整;

      6、较长的字符串也可以断开成多个字符串分行书写,多行同样需对其即可;

      7、变量定义时最好一行指定义一个变量;

      8、头文件引入、变量定义、执行语句、返回语句之间都应该插入空行;

    三、缩进,常用来体现代码中语句的层次逻辑关系,使用tab字符缩进,尽量不用空格表示tab,禁止空格缩进和tab缩进混用

      1、跳转和循环语句中在带语句块是,语句块的{应与语句在同一行,中间用空格分隔即可;减少代码行数 

      2、普通函数定义时{应与函数声明在同一行;减少代码行数

      3、每一层语句块的嵌套都要实现代码的往里缩进一层;

      4、goto语句的自定义标号不要缩进,无论标号下的语句的缩进层级如何;

      

    四、注释,常用对代码作特别说明,

      1、注释主要包括单行注释(以//开始到行尾结束)和多行注释(包括在/*和*/之间的内容);

      2、整个源码文件的顶部注释,模块的信息(文件名、作者信息、版权信息、版本(历史)信息)等,注释顶头写,不缩进;

      3、函数注释,函数的功能,参数、返回信息、错误码等,写在函数定义上侧,与函数定义建不留空行,注释顶头写,不缩进;

      4、语句块注释,说明语句块功能,写在语句块上侧,与语句块不留空行,与当前语句块缩进层一致;

      5、复杂结构体注释,说明变量的含义表示等,写在结构体内外均可,与最近的语句缩进层一致;

      6、复杂的宏定义注释,说明红顶的含义等,顶格写,与宏定义不留空行,无缩进;

      7、复杂的变量声明注释,变量的作用说明,写在变量声明的上侧,与语句不留空行,缩进保持一致;

      8、特殊行代码注释,又叫代码行右侧注释,一种短注释,对当前行代码作特别说明。一般为单行注释,和代码间最少需隔一个空格,同一源文件中的右侧注释必须对其,一般从61字符开始;

      9、穿插在代码行中的注释,建议不要使用;

    五、编程的基本要求:

      1、一定要实现一个函数只做一件事情,并能力做好,不要实现面面俱到的函数;

      2、建议代码行数不要过多,不超过2屏,24×2=48行;

      3、同一函数内部缩进层级尽量不要超过5层或更多层;

      4、函数的实现思路应该是逻辑简单,实现方便;

      5、执行函数调用就是通过函数调用完成函数执行的动作集合,因此函数名经常包含动词,常常是动名机构的短语;

      6、重要的函数往往需要加上适当的注释

      7、同一个函数中的局部变量不要超过10个,传递的参数不大于6个,降低函数的复杂度;

      8、在超过3个不同的地方重复实现的代码,尽量抽象成函数来实现功能;

      9、原则上注释部分不低于代码量的30%;

      10、复杂类型的定义,结构体、联合体、枚举、函数指针、复合类型的数据尽量用typedef定义新类型的方法定义使用;

  • 相关阅读:
    【pandas】'Styler' object has no attribute 'highlight_between'
    【原创】3行代码搞定:Python批量实现多Excel多Sheet合并
    【挑战阿里面试题-10种方法实现DataFrame转list】
    SpringCloud+RocketMQ实现分布式事务
    分布式事物SAGA
    分布式事务TCC
    多线程学习——思维导图
    .NET CLI简单教程和项目结构
    使用Google Fonts注意事项
    如何在印刷品中使用遵循SIL Open Font License协议的字体
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/10820244.html
Copyright © 2011-2022 走看看