博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程入门之编码风格
阅读量:5107 次
发布时间:2019-06-13

本文共 2094 字,大约阅读时间需要 6 分钟。

  作为编程的工作人员,代码风格也是非常重要的。编译器一般不会挑起难看的代码,能够顺利编译的代码不一定是好代码,好的代码一定能够顺利编译,怎么才能写出好代码。好的代码是需要好的风格的。本人主要是在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定义新类型的方法定义使用;

 

转载于:https://www.cnblogs.com/guochaoxxl/p/10820244.html

你可能感兴趣的文章
LeetCode -- Swap Nodes in Pairs
查看>>
Docker阿里云镜像加速
查看>>
centos7 hue安装
查看>>
俱怀逸兴壮思飞,欲上青天览明月
查看>>
《数学之美》 吴军
查看>>
javascript基础知识(30) Function函数与Object对象的关系
查看>>
20.策略者模式(Stragety Pattern)
查看>>
MTK Android中设置默认时区
查看>>
MTK Android修改System分区
查看>>
电脑不加电
查看>>
PHP项目收藏
查看>>
[Go] 跨平台文件系统监控工具 fsnotify 应用举例
查看>>
作为互联网人,你必须知道的一些IT类网站
查看>>
Linux 下复制(cp)目录时排除一个或者多个目录的方法
查看>>
JavaScript闭包(Closure)学习笔记
查看>>
java编译错误:编码GBK不可映射
查看>>
App Store Review Guideline(带翻译)
查看>>
机房收费系统--文本框输入限制及技巧
查看>>
解剖继承和虚表
查看>>
English trip -- Review Unit 10 Leisure 休闲
查看>>