C语言 百文网手机站

C语言的编码规范

时间:2023-02-10 12:30:42 C语言 我要投稿

C语言的编码规范

  C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。下面是小编分享的C语言的编码规范,一起来看看吧。

  1. 基本要求

  1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。

  1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。

  1.3 尽量使用标准库函数和公共函数。

  1.4 不要随意定义全局变量,尽量使用局部变量。

  1.5 使用括号以避免二义性。

  2.可读性要求

  2.1 可读性第一,效率第二。

  2.2 保持注释与代码完全一致。

  2.3 每个源程序文件,都有文件头说明,说明规格见规范。

  2.4 每个函数,都有函数头说明,说明规格见规范。

  2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。

  2.7 常量定义(DEFINE)有相应说明。

  2.8 处理过程的每个阶段都有相关注释说明。

  2.9 在典型算法前都有注释。

  2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。

  2.11 循环、分支层次不要超过五层。

  2.12 注释可以与语句在同一行,也可以在上行。

  2.13 空行和空白字符也是一种特殊注释。

  2.14 一目了然的语句不加注释。

  2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。

  2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。

  3. 结构化要求

  3.1 禁止出现两条等价的支路。

  3.2 禁止GOTO语句。

  3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RETURN。

  3.4 用 CASE 实现多路分支。

  3.5 避免从循环引出多个出口。

  3.6 函数只有一个出口。

  3.7 不使用条件赋值语句。

  3.8 避免不必要的分支。

  3.9 不要轻易用条件分支去替换逻辑表达式。

  4. 正确性与容错性要求

  4.1 程序首先是正确,其次是优美

  4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。

  4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。

  4.4 所有变量在调用前必须被初始化。

  4.5 对所有的用户输入,必须进行合法性检查。

  4.6 不要比较浮点数的相等,如: 10.0 * 0.1 == 1.0 , 不可靠

  4.7 程序与环境或状态发生 关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。

  4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。

  5. 可重用性要求

  5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。

  5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。

  5.3 公共控件或类应建立使用模板。

  C语言的编码规范

  1 排版规则

  1) 程序应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写;

  2) 源程序建议使用英文书写,尽量不含有中文。每行不超过80字符。对于较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分;

  3) 左花括号要另起一行,不能跟在上一行的行末;

  4) 一个变量定义占一行,一个语句占一行;

  5) 对独立的程序块之间、变量说明之后必须加空行;

  6) 在结构成员赋值等情况,等号对齐,最少留一个空格;

  7) 若函数或过程中的参数较长,则要进行适当的划分。

  8) 形参的排序风格:

   最常使用的参数放在第一位;

   输入参数列表应放在输出参数列表的左边;

   将通用的参数放在特殊的参数的左边。

  2 命名规范

  2.1 应用程序的命名

  “系统简称”+模块名称

  2.2 子模块的命名

  每个子模块的名字应该由描述模块功能的1-3以单词组成。每个单词的首字母应大写。在这些单词中可以使用一些较通用的缩写。

  2.3 变量的命名

  变量的命名的基本原则是使得变量的含义能够从名字中直接理解。可以用多个英文单词拼写而成,每个英文单词的首字母要大写,其中英文单词有缩写的可用缩写;变量的前缀表示该变量的类型;对于作用域跨越10行以上的变量名称不能少于4个字符,除循环变量,累加变量外不得使用I、j、k等名称的变量。变量分为取全局变量和局部变量,对于全局变量以加前缀“g_”来区分。

  使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写

  考虑到习惯性和简洁性,对于按常规使用的局部变量允许采用极短的名字,如用n、i作为循环变量,p、q作为指针等。另外,要注意的是:全局变量在程序中不要定义太多,能用局部变量的就用局部变量。如果要使用相关的变量,建议采用类的方式或者结构的方式存放,以减少具体变量的个数。

  2.4 常量的命名

  常量所有的字母均为大写。并且单词之间使用下划线”_”隔开。

  2.5 函数/过程的命名

  函数/过程名称应该尽量使用能够表达函数功能的英文名称,函数名称中应该禁止使用如同function1,function2等含义不清的名称。单词间应该使用大小写分隔。全局函数/过程名称以“g_”前缀开始。

  2.6 接口命名

  接口名称要以大写字母开头。如果接口包含多个单词,每个单词的首字母大写,其他字母小写,如果,这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写为Xml)。

  2.7 类的命名

  类名称要以大写字母开头;

  类名称如果包含多个单词,每个单词的首字母要大写,其他字母小写;如果这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写作Xml);

  类名称应该是一个名词或名词短语;

  类成员变量的命名规则与上述规则相同,但是要以“m_”开始,表示其为成员变量(Member);

  类名称不能出现下划线。

  2.8 方法的命名

  方法名称以小写字母开头。

  方法名称如果包含多个单词,除了第一个单词外,每个单词的首字母大写,其它字

  母小写。如果这些单词是缩略语(例如XML),也要首字母大写,其它字母小写(写作Xml)。

  方法名称应该是一个动词或动名词短语,意思是“完成什么功能”,“执行什么操作”。

  2.9 数据库的命名

  2.9.1 表:

  采用“模块名简称+前缀+’_’+表名”的命名规则。表名以能理解该表的内容为原则,

  可由中文表示,也可由代表此表含义的英文字母组成;首字母大写;前缀代表此表类别。

  2.9.2 视图:

  采用“模块名+’_’+视图名+’视图’”的命名规则,通常由8个以内汉字组成。

  2.9.3 存储过程:

  采用“Proc+模块名+’_’+存储过程名”的命名规则。

  2.9.4 触发器:

  采用“模块名+’’+触发类型+’’+表名”的命名规则,如果有多个触发类型,则可以叠加在一起。

  2.9.5 字段:

  字段的命名以能理解该字段的含义为原则,通常由多个英文单词加前缀拼写而成,而组成字段名称的首字母应大写。单词有缩写的可用缩写。字段的前缀表示该字段的数据类型,其取值详见“数据类型”描述。原则上,字段的命名长度不超过18字节;描述字段的中文名称,用数据库创建工具设计数据库时,需要输入。

  3 参数的约定

  3.1 输入参数的约定

  有些函数有输入参数,这些参数指由函数外部(调用者)输入,并在函数内部使用。在函数业务流程说明后跟输入参数说明区,用“输入参数”或“Input Parameters”标记。在参数名列表中的每个参数后增加该参数的注释。

  3.2 输出参数的约定

  有些函数有输出参数,这些参数指由函数外部(调用者)定义,在函数内部使用并返回给调用者的参数。在输入参数说明区后跟输出参数说明区,用“输出参数”或 “Output Parameters”标记。在参数名列表中的每个参数后增加该参数的注释。另外输出参数一般以指针或应用输出。

  3.3 返回值的约定

  每个函数均有返回值,除非操作非常简单。对于有不同状态的返回值,建议用long型的返回值,0为成功。对于出错类返回值,在同一层次的模块,用统一代码表示。在输出参数说明区后跟返回值说明区,用“返回值”或“Return values”标记。返回值说明,要说明各种不同类型返回值以及它们的含义。

【C语言的编码规范】相关文章:

C语言基础之编码规范04-03

C语言:ASCII编码与Unicode编码09-21

C语言的编码编译04-14

C语言和C++的区别精选03-01

C语言和C++的区别03-09

C语言和C++的分别03-26

C语言辅导:C语言运算符表08-31

C语言的指针10-06

C语言考点09-30