没有合适的资源?快使用搜索试试~ 我知道了~
描述C语言编程规范 方便统一编程的风格 写出更加易于阅读的代码
资源推荐
资源详情
资源评论
C 语言编码规范
版本:V0.3 生效日期: 密级:
总页数:65 正文:58 附录:3
编制: 审核: 批准:
Version
编
号
版
本
修改记录 修改
人员
审核
人员
修改日期
1 V0.1 Create 2007-5-8
2 V0.2 2007-5-9
3 V0.3
增加了一些示例, 对以前的版本做了一定
的修改,同时也增加了一些其他的规范说
明。
2007-5-10
目 录
1 引言..............................................................................................................................................5
1.1 目的....................................................................................................................................5
1.2 适用范围............................................................................................................................5
1.3 术语(Glossary).............................................................................................................6
2 系统基本数据类型定义...............................................................................................................7
3 文件构成规范...............................................................................................................................8
3.1 源文件的构成规范............................................................................................................8
3.2 头文件的构成规范............................................................................................................8
3.3 源文件和头文件头信息规范............................................................................................9
3.4 防止多次包含的规范......................................................................................................10
3.5 包含文件的规范..............................................................................................................10
3.6 宏定义的规范..................................................................................................................11
3.7 类型定义的规范..............................................................................................................13
3.8 原型声明的规范..............................................................................................................14
3.9 变量定义与声明的规范..................................................................................................15
3.10 结构体定义与声明的规范............................................................................................16
3.11 函数定义的规范............................................................................................................21
3.12 文件排版格式的规范....................................................................................................21
3.12.1 空行.....................................................................................................................21
3.12.2 代码行.................................................................................................................22
3.12.3 空格与对齐.........................................................................................................23
3.12.4 长行拆分.............................................................................................................27
4 命名规范.....................................................................................................................................30
4.1 限定符前缀......................................................................................................................30
4.2 文件标识符命名规则......................................................................................................30
4.3 C标识符命名规则...........................................................................................................30
4.3.1 基本规则...............................................................................................................31
4.3.2 标识命名及书写规则...........................................................................................31
4.3.3 前缀限定符的命名规则.......................................................................................31
4.3.4 含义标识的命名规则...........................................................................................34
4.4 单词省略..........................................................................................................................35
4.5 全局标识符使用限制......................................................................................................36
4.6 函数内部静态变量限制..................................................................................................36
4.7 程序命名的共性..............................................................................................................36
5 函数编写规范.............................................................................................................................38
5.1 函数划分准则..................................................................................................................38
5.2 函数局部变量约定..........................................................................................................38
5.3 函数参数约定..................................................................................................................38
5.4 函数结束时return的约定..............................................................................................38
5.5 函数返回值约定..............................................................................................................39
5.6 函数注释..........................................................................................................................39
5.6 函数设计编写注意事项..................................................................................................39
6 程序注释.....................................................................................................................................46
6.1 注释原则及格式..............................................................................................................46
6.2 文件的注释......................................................................................................................46
6.3 函数的注释......................................................................................................................46
6.3.1 关于函数的注释框...............................................................................................46
6.3.2对函数内部注释的一般规则................................................................................47
6.4 语句的注释......................................................................................................................47
6.5 常量的注释......................................................................................................................48
6.6 结构体的注释..................................................................................................................48
6.7 注释的注意事项..............................................................................................................48
7 控制语句的规范.........................................................................................................................52
7.1 一般规定..........................................................................................................................52
7.2 运算符使用规则..............................................................................................................52
7.3 控制语句的嵌套..............................................................................................................52
7.4 控制语句的格式..............................................................................................................53
7.4.1 if语句............................................................................................................................53
7.4.2 switch语句....................................................................................................................53
7.4.3 for语句..........................................................................................................................53
7.4.5 while语句......................................................................................................................54
7.5 循环计数器的控制..........................................................................................................54
7.6 禁止使用的循环语句......................................................................................................54
7.7 嵌套和递归的规定..........................................................................................................54
8 可读性.........................................................................................................................................55
8.1 运算符的优先级..............................................................................................................55
8.2 避免使用不易理解的数字..............................................................................................55
8.3 关系较紧密的代码尽可能相邻......................................................................................56
8.4 不要使用难懂的技巧性很高的语句..............................................................................56
9 可测性.........................................................................................................................................58
10 程序效率...................................................................................................................................59
11 质量保证...................................................................................................................................60
12 代码编辑、编译、评审...........................................................................................................61
13 代码测试和维护.......................................................................................................................62
附录1 常用匈牙利前缀................................................................................................................63
附录2 数据字典............................................................................................................................64
附录3 参考文献............................................................................................................................65
1 引言
本文档制订了在使用C 语言进行软件开发时应该遵循的编码规范(Coding Standard)。
1.1 目的
编码规范是编码准则,它注重于程序的物理结构和外观,而不是程序的逻辑结构。它们使编
码更加容易阅读、容易理解而且容易维护。
使用统一编码规范集的主要原因,是使应用程序的结构和编码风格标准化,以便于阅读和理
解这段编码。好的编码规范可使源代码严谨、可读性强且意义清楚,与其它语言规范相一致,并
且尽可能的直观。
良好的编程风格是提高程序可靠性非常重要的手段,也是大型项目多人合作开发的技术基础。
本规范的目的在于通过规范定义来避免不好的编程风格,增强程序的易读性,便于自己和其
它程序员理解。
遵循良好的共通的编码规范,也是提高代码编写能力,保证软件工程这个阶段质量的一个重
要手段。同时也是衡量一个组织软件开发能力的一个重要指标。
规范编程同时也提高了程序员的个人编程修养.
1.2 适用范围
本规范适用于C 语言源程序编写。
本规范可以说是为STB开发量身定做的,但是其中各项规范都是参照并遵循基本的约定而制订
的,因此也可以作为其它领域的软件开发中的编码规范。
针对“嵌入式”系统/软件开发的特点,在本次规范的内容中增加了关于可移植代码编写的规范。
因此可以在“嵌入式”软件开发中应用。
1.3 术语(Glossary)
表1 中列出了本文中使用的术语。
表 1 术语
No Item Description
1 Coding
Standard
编码规范
2 Code Review
代码评审,代码编写完毕后通过相关人员评审合格后
提交
2 系统基本数据类型定义
处于对系统独立性和可移植性考虑,特别定义如下基本数据类型(供参考)
typedef signed char INT8; /* INT8 : 8 bit signed integer */
typedef unsigned char UINT8; /* UINT8 : 8 bit unsigned integer */
typedef signed short INT16; /* INT16 : 16 bit signed integer */
typedef unsigned short UINT16; /* UINT16 : 16 bit unsigned integer */
typedef signed long INT32; /* INT32 : 32 bit signed integer */
typedef unsigned long UINT32; /* UINT32 : 32 bit unsigned integer */
typedef signed long LONG; /* INT32 : 32 bit signed integer */
typedef unsigned long ULONG; /* UINT32 : 32 bit unsigned integer */
typedef unsigned char BOOL; /* BOOLEAN : unsigned char */
typedef signed char CHAR; /* INT8 : 8 bit signed integer */
typedef unsigned char UCHAR; /* UINT8 : 8 bit unsigned integer */
typedef float FLOAT; /* float : float */
typedef double DOUBLE; /* double : double float */
typedef void* HANDLE; /* HANDLE : for widget or other objects */
#ifndef NULL
#define NULL (void*)0 /* NULL: Null point */
#endif
#ifndef TRUE
#define TRUE 1 /* TRUE: Integer value 1 */
#endif
#ifndef
#define FALSE 0 /* FALSE: Integer value 0 */
#endif
3 文件构成规范
在这一章中将详细规定各种文件的内部构成,并说明各组成部分的含义和功能,并在本规范
的附录中给出相应的范例。
3.1 源文件的构成规范
表 2 源文件的基本构成
N o . Item Rule
1
源文件头信息部分(Source File Header Section)
3.3
2
包含文件部分(Include File Section)
3.5
3
宏定义部分(Macro Define Section)
3.6
4
类型定义部分(Type Define Section)
3.7
5
原型声明部分(Prototype Declare Section)
3.8
6
全局变量声明部分(Global Variable Declare Section)
3.9
7
文件静态变量定义部分(File Static Variable Define Section)
3.9
8
函数定义部分(Function Define Section)
3.10
3.2 头文件的构成规范
头文件内的定义、说明应可以在多个源文件中使用。
头文件内各种数据的定义、说明格式按源文件的标准。
表 3 头文件的基本构成
N o . Item Rule
1
头文件头信息部分(Header File Header Section)
3.3
2
防止多次包含部分(Multi-Include-Prevent Section)
3.4
3
包含文件部分(Include File Section)
3.5
4
宏定义部分(Macro Define Section)
3.6
5
类型定义部分(Type Define Section)
3.7
6
原型声明部分(Prototype Declare Section)
3.8
3.3 源文件和头文件头信息规范
文件名信息;
所属的模块(Module)名称:当模块很大时,可以考虑在大模块内增加子模块的标识;
预先包含头文件:只有在头文件的描述中使用,注明包含本文件之前应该首先包含的头
文件;
公司名称;
概要描述:概要的描述文件的功能、构成等信息,如果存在特殊的考虑,也请注明;
修改履历,其中请标明:
修改日期(Date);
修改人(Revised By);
修改变更号(PR/CR);
修改描述(Description):请注明修改的原因和对策,如果存在特殊的考虑,也请注明;
示例:
/****************************************************************************
* Copyright (c) 2007, Technologies, Inc.
* All rights reserved.
* 文件名称: Demo.c
* 描述: 示例文件
* 当前版本: 1.0
* 作者: wuyp
* 完成日期: 2007.4.2
* 修改历史:
* Date Athor Version Reason
* -------------------- ---------------------- --------------- ------------------------
* 1. 2007.4.2 wuyp 1.0.0 Create file.
******************************************************************************/
(说明:文件头信息注释的列宽度定为100,上面的示例由于页面限制没有达到要求)
3.4 防止多次包含的规范
该段只在头文件中使用,来防止多次被包含;
采用#ifndef “文件名宏”、#define “文件名宏”的方式;
使用的“文件名宏”为:“文件名”+“_”+“扩展名”,文件名与扩展名均为大写;
注意在文件末尾增加相匹配的“#endif”,并且使用行末注释标明其对应的预处理指令;
示例:
剩余33页未读,继续阅读
资源评论
盼盼吴
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功