C语言编码规范提升程序可靠性与协作效率

4星 · 超过85%的资源 需积分: 33 8 下载量 168 浏览量 更新于2024-08-01 收藏 232KB DOC 举报
C语言编码规范是提升软件质量和团队协作效率的关键,它旨在确保代码的一致性、易读性和高效性。该规范主要针对网络安全事业部内的Linux系统C语言源程序编写,同时也适用于Windows系统下使用VC开发的程序员作为参考。 1. **程序排版**:C语言编码规范强调代码的整洁度,推荐将超过80字符的长语句分成多行,遵循"左大括号、右大括号"对齐原则,操作符应放在新行的开头,并适当缩进。例如,复杂的表达式应在低优先级操作符处换行,如`perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof(long);`。 2. **注释**:注释应该清晰明了,用于解释代码的功能或复杂的逻辑。注释应该紧跟代码块或关键部分,而不是过度冗余。 3. **可读性**:注重变量和函数的命名规则,以反映其用途和功能,如5.1命名方针和5.2-5.3结构、联合与宏的命名规则。比如,结构名通常以大写字母开头,表示全局或静态,如`ACT_TASK_TABLE`。 4. **定义位置**:变量、函数定义应在最接近其首次使用的代码段,避免不必要的移动。宏定义和预处理命令也应有明确的组织和位置。 5. **用户自定义类型**:清晰地定义自定义数据类型,如枚举或结构,以便其他开发者理解。 6. **变量管理**:变量声明应简洁,避免全局变量,使用局部变量尽可能减少副作用。如`act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied = ...;` 7. **操作符**:使用清晰的操作符,避免过度嵌套,如在`report_or_not_flag`示例中,条件判断部分按照逻辑划分。 8. **指针和函数**:对于指针和函数调用,确保指针初始化和引用清晰,函数参数和返回值类型明确。 9. **调试与测试**:鼓励在代码中添加适量的调试和测试代码,但要保持代码简洁,避免混淆。 10. **质量保证**:遵守编码规范是保证软件质量的基础,包括代码审查、文档编写和版本控制等。 11. **效率与质量**:追求代码效率的同时,不能牺牲可读性和可维护性。例如,通过优化算法或合理的数据结构来提高程序运行速度。 C语言编码规范是一系列指导性原则,它涵盖了代码布局、注释、命名约定、控制结构等多个方面,目的是为了提升代码的可读性、可维护性和整体质量,促进团队间的有效协作。遵守这些规范能显著提高项目的成功率并降低后期维护成本。
2011-12-26 上传
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_”来区分。 使用有意义的英语单词,使用大小写分隔,每个单词的第一个字母为大写 标识符种类 书写规范 示 例 函数/过程名/变量 一般标识符 CheckButtonStates 宏标识符 大写标识符 SALES_TAX 类型定义 ‘T’+一般标识符 TMyType 类标识符 ‘C’+一般标识符 CEditBox 结构标识符 ‘S’+一般标识符 SMyStructure 联合标识符 ‘U’+一般标识符 UMyUnion 字符标识符 ‘c’+一般标识符 cReadKey 字符串标识符 ‘s’+一般标识符 sComputerName 整数标识符 ‘i/ui/l/ul’+一般标识符 iNumber, ulCurrent 浮点型标识符 ‘f/d’+一般标识符 fPrice,dMoney 逻辑标识符 ‘b’+一般标识符 bIsDetailed 对象标识符 特征小写字母+一般标识符 fMyStatus, tMyTree 指针变量 p+类型前缀+一般标识符 piCount 全局变量 g+类型前缀+一般标识符 giCount 类私有变量 f+类型前缀+一般标识符 fiCount 数据库变量 以m打头 miCount 考虑到习惯性和简洁性,对于按常规使用的局部变量允许采用极短的名字,如用n、i作为循环变量,p、q作为指针等。另外,要注意的是:全局变量在程序中不要定义太多,能用局部变量的就用局部变量。如果要使用相关的变量,建议采用类的方式或者结构的方式存放,以减少具体变量的个数。 2.4 常量的命名 常量所有的字母均为大写。并且单词之间使用下划线”_”隔开。 2.5 函数/过程的命名 函数/过程名称应该尽量使用能够表达函数功能的英文名称,函数名称中应该禁止使用如同function1,function2等含义不清的名称。单词间应该使用大小写分隔。全局函数/过程名称以“g_”前缀开始。 2.6 接口命名 接口名称要以大写字母开头。如果接口包含多个单词,每个单词的首字母大写,其他字母小写,如果,这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写为Xml)。 2.7 类的命名 类名称要以大写字母开头; 类名称如果包含多个单词,每个单词的首字母要大写,其他字母小写;如果这些单词是缩略语(例如XML),也要首字母大写,其他字母小写(写作Xml); 类名称应该是一个名词或名词短语; 类成员变量的命名规则与上述规则相同,但是要以“m_”开始,表示其为成员变量(Member); 类名称不能出现下划线。 2.8 方法的命名