C_C++编程规范.pdf
《C_C++编程规范.pdf》由会员分享,可在线阅读,更多相关《C_C++编程规范.pdf(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、编目:编号:版本:实施1期:样式定义:三 标 诲:居中 1C C+编程规范项目名称:起草:_ _ _ _ _ _ _ _ _ _郑仙斌日期:2003-12-23批准:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _日期:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _南望信息产业集团有限公司修改记录/彳带格式的:字体:加粗文件编号版本拟制人/修改A拟制/修改更改理由主要更改内容1写要点即可二0.11.0.0郑仙斌2 0 0 3-1 2-2 3新建无0.22.0.0赵世范2 0 0 4 0 7-2 9修订针对嵌入
2、式系统编程进行调整注1:每次更改归档文件(指归档至!网I管理部或公司档案室的文件)时,需填京此衣-注2:文 件 笫次川档时,“电改理由”、“要更改内容”栏 写“无 二目 录 前;_ 52_ _文件薄 二:二 二 ZZZZ二二 ZZZZZZZZZZZZZZZ二52.2 目录结构.53 程序版式.53.1 1.彳 .53.2 代码行.53.3 代码行内的空格.63.4 对齐.63.5 修饰符的位置.63.6 函数参数.6第二篇命名风格.4 间J.75.1 版本和版权声明.75 2 1 1 1,IJ H U 27t 夕 U 85.3 常用数据类型定义.95.4 Windows时象名称缩写.95.5
3、Visual CH常用资源宏定义命名列表.10第三篇注释风格.116 前言.117 注释风格.117.1 头文件.n7.2 差、.-a 1 17.3 枚举.117.4 结构.11Z5 成员.127.6 宏定义.127.7 函数.127.8 组.127.9 链接.137.10 修改.137.11 通常注释.13第四篇建议规则.138 前言.139 建议规则.139.1 禁止使用八进制数.139.2 较K的讲句(80字符)要分成多行书写.工 二.139.3 结构的设计要尽量考虑向前兼容和以后的版本升级.139.4 当肖明川J分布式环境或不同CPU间通信环境的数据结构时,必须考虑机器的字节顺序、使用
4、的位域及7:节对齐等问题.139.5 函数的规模尽量限制在200行以内.149.6 使用断言来发现软件问题,提高代码可测性.1410 针对实时嵌入式系统的犯议规则.1410.1 禁止使用动态堆分配.1410.2 禁止使用 errno.1410.3 禁止使用 offcetof.14【(14 禁 止使用vsldio.h.1410.5 禁止d 更用 atoi.atof.atol.1410.6 峡:I J abort,exit,ycicnv.14-带格式的:主标题,左第 一 篇 编 程 风 格1 前 言+一带 格 式 的:标 题 1,无项目符号-M-S.或编号本文档上要是为规范使用C/O+进行程序开发
5、的人员提供个源代码书”标准,以及程序和文件的命名标准,使得能在编程时遵循一致的格式。2文件结构每个C+/C程序通常分为两个文件。个文件用上保存程序的声明(deciaratioii),称为头文件“另一一个文件用于,保存程序的实现(implementation),称为定义(definitioii)文件。2.1 版本和版权声明 版权利版本的声明位于头文件和定义文件的开头。为了防了头文件被竹复川川,应,GlJifndef/define/endif结构产生预处理块。#ifndef FOOL IB H#define FOOLIB H-带格式的:标 题 1,无项F1符号、或编一 _ _ _ _ _ _ _
6、_ _ _ _ _ _-一带格式的:麻 题 2-带格式的:格II的号和编号#cndif/*FOOUB H */”#include vfilename.h 格式来用川标准库的头文件。#include“filename.!”格式来引用非标准库的头文件1:一 为确保叮C兼容,须在(利C+环境中编译的头文件必须使用以卜代小代小仁 在卜#idef cplusplusextern C (#endif/*cplusplus*/#ifdef cplusplus厂#endif/*cplusplus*/2.2目录结构在,级 II)立下建 bin.Debug,Release,res,lib,include 和 sr
7、c 等目录 需要公共调用的.h头文件放刊|1/include曳 J ib昨文件放在目泉lib中、最终编译的版本都上成到bin I I录中。如果头文件和定义文件过多,可以酌情分别放在include和src I I荥中。3程序版式-丽 菽 的:项目的号和编号-带格式的:格 共 2-带格式的:块II符号 和 如 厂-带 格 式 的:亚 丁版式虽然不会影响程师的功能,但.会影响可读性。程序的版式追求清晰、美观,是程序风格的手;要构成因素,3.1 空行空:行起着分隔程序段落的作用,文件之中不解存在无规则的空的。每个类,:训 之下、每个函数定义结束,之.后都要加农行.4一个函数体内.逻揖上密切川关的讲旬之
8、间不加力行,昧它地方应加空行分隔。3.2 代码行 一行代码只做一件事情,如只定义个变量,或只”条语句。-带格式的:标题 2-格 式 的:格H的)和编表 一带格式的:曷K 2-带格式的:项目符号和编号】if、for、while、d o 等语句fl 3 行,执行语句不得紧跟其后。不论执行语句仃多少都要加IL 任何if.else i f 语句,最后必须有一个收尾的else,例如:i f (Y=ans)_Le ls e i f (N=an s)e ls e 条件判断采用(数 值=变量)方式,防止出现(变 质=数值)错误。尽可能在定义变量的同时初始化该变量(就近原则),3.3代码行内的空格-带格式的:砺
9、而 百 和 编 厂-带格式的:标 题 厂 关键字之后要用空格。象const、virtiial、inline、case等关健字之后至少要留 个个格,否则无法辨析-带格式的:项目符号和编号关键以。象if、for、w hile等关键,之后应招 个空格再跟左括号(,以突然关键字“函数名之吊不要留空格,紧 跟 左 括 号,以勺关键字区别。,之后要留空格,如F=、k-add 静态变最加前缀s全局变量加前级g-,类的数据成员加前缀m_ 指 针 变 旬 命 名 需 加 个 前 缀“D(小丐)。F()O_N()DE*pFooNode:FOO NODE*iwFooNode;FOO NODE*、pppFocNodc
10、;-带格式的:亘亟和编入5.2常用命名前缀列表-二带格式的:标瓯万前缀演描述例子chchar8-bil characterchGradechTCHAR16-biL characler if NICCOE is definedchNamebBOOLBoolean valuebEnabledbyBYTE8 bi I int egerbyPackagonintInteger(size dependent on operating svstem)nLengthsshori16-bil signed integersLenglhuUI NTUnsigned value(size dependent on
11、 operatingsystem)uLenglhwW O R D16-bit unsigned valuewPos1LO N G32-bit signed integerlOffsetdwD W O R D32-bit unsigned integerdwRange2*Ambient memory model pointerpDoc12PAR*Far pointerIpDocszCstringjchadlString class defined by windowsA?har array;szNameIpszLPSTR32 b il pointer to character siringIps
12、zNamcIpszLPCSTR32-bit pointer to constant character stringIpszName带格式的:普通(网站)带格式的:普 通(网站)带格式的:字体:加I粗,字体颜色:带格式的:字体:小四带格式的:字体:小四带格式的:字体:加粗,字体颜色:红色1 1 3 s zL P C TSTR3 2-bit poin t er t o con s t an t char act er s t r in gif UN I C O D E is defin edI ps z N amehhan dleH an dle lo Win dow s objeclhWn d
13、I pfn(*fn)callbackF ar poin t er t o C A I J.B A C K fu n ct ionI pfn A bor t()5.3 常用数据类型定义-带格式的:标 题2常用数据类型含义N W C H A R,I N T8,C H A R仃符号的8 bit 整数N W B YTE,1 4 T 8,B YTE无符号的8 bit 整数N W SH O RT,I N T1 6,SH O RT仃符号的1 6 bil整数XW WO RD,门N T 1 6,WO RD无符号的1 6 bit 整数N W I N T,I N T3 2,I N T行符号的3 2 bii整数N W
14、 D WO RD,I I N T3 2,D WO RD无符号的3 2 bit 整数N W I N T6 4,I N T6 4有符号的6 4 bi 整数M V I I N T6 4,U1 N T6 4无符号的6 4 bii整数N W B O O L,B O O L无符号的3 2 bil整数,不建议使用bool类型N W F L O A T,F L O A T单精度浮点数N W D O UB L E,D O UB L E双精度浮点数5.4 Windows对象名称缩写-带格式的:林 虺2Windows 对象例子变盘M FC类例子对象备注H WN DhWn d;C Wn d*pWn d;H D L G
15、hD lg:C D ialo。*pD lg;!chD C:C P C*1)D C;H G D I O B JhG diO bj:C C diO bjecl*pG diO bj;H P E NhP en;C P en*pP en:H B RUSHhB r u u h;C B r u s h*pB r u s h;H F 0 N ThF on i;C F cn t*pF on t;注:备注栏,I山控件作为对话框内的资源而进行的成员命名 2 BIT M APhBi l m a p;CBi Im a p*pBi Im a p:HP AL ET T EhP r l o l i c:CP a pi t。*
16、pP a l e t l e:HR GNhR gn:CR gn*I)R gn:HV EN UhM c n u:(M e n u*M e n u:HWN DhCt l:CS t a t i c*.S t a t i c:m s t a l i c N a m cIIWN DhCt l:(Bu t Io n*pBt n:n i b t n N a m eHWN DhCt l;CEd i t*pEd i t;m e d i t N a m e WM)hCt l:CL i s t Bo x*pL i s t Bo x:m l i s t N a m eHWN DhCt l:CCo m b o Bo x
17、*pCo o b o Bo x:m c m b N a m e5.5 Visual C+常用资源宏定义命名列表-:带格式的:标 题2前缀类型描述例子I DR标识多个资源共享的类型IDR M AIN FR AM E1 l o 0 x 6FFFIDD对话框资源(Di a l o g)1 1)1)S P EL L CHECK 1。0 x 6FFFHIDD基 对话框的上卜文帮助(Co n t e x t He l p)HIDD S P EL L CHECK0 x 2 0001 t o 0 x 2 6FFIDB位图资源(Bi t m a p)IDB CO M P AN Y 1.060!t o 0 x 6
18、FFFIDC光标资源(Cu r s o r)IDC P EN CIL1 t o 0 x 6FFFID1图标资源(Ic o n)I DI N O T EP AD 1。0 x 6FFFIDI DM1:具栏或菜单栏的命令项ID T O O L S S P EL L IN G0 x 8000 t o O x DFFFHID命令上.卜文帮助(Co m m a n dHID T O O L S S P EL L IN GO u 1800()1。O x l DFFFHe l p c o n t e x t)IDP消息框提示文学资源IDP IN V AL ID P AR T N O8 t。O x DFFFHI
19、 DP消息框上卜文帮助(M e s s a go-b c x He l pc e n t,e x I)H1DP IN V AL ID P AR T N00 x 30008 t o 0 x 3DM;FIDS字符串资源(S t r i n g)IDS CO P YR IGHT 1。0 x 7FFFIDC对话框内的捽制资源(Co n t r o l)IDC R ECAL C8 i o O x DFFF第三篇注释风格带格式的:匕林堰,左6 前 言 +一带格式的:标题I木文档主:要足为规范使用C/C+进行程序开发的人员提供个源代码注释书”标准,使得能在编程时遵循致的格式。该风格派生d o xyxe n
20、(结 合 va ssi l a n l 使用更加方便),并可由d o xyg e n 生成各种类型(h l m l,rl f,xm l 等)的注释文档。注释均采用中文,一般情况卜源程序仃效注粹最必须在2 0%以匕:7 注释风格-带格式的:标题1/*f i l e f i l e.h*b ri e f 这里填1 本文件的摘要。逆 格 项带格式的:标 题 2,贬义网格后I 动调整右缩进,调整中文与西文文字的间距,调整中文、数字的问匝*ve rsi o n 3.0.0*a ul h o r 郑仰I 斌*d a l e 2 0 0 4/0 2/1 4*三 n o l e 这里填 与本文件的详细功能描述
21、和注解*n o i c 历史记录:*n o l e V 2.0.0 添加了 一个导出接口*n o i e V 1.0.0 创建文件*wa rn i n g 这里填写本文件相关的警告信息工类的细方描述*结构的详细细节const char*TestClass:funcl(char cjnt n)throw(std:out of range)H带格式的7.8 组,定义组:/*defgroup group2 第二组*这是第.组的描述。&加入类到组中:/*ingroup g ou2*brief类C3在 笫 划 中*/class C3 I k/*Vngroup group2*b rief类C4在 第:组中
22、class C4 11:定义子组:/*defgroup group4 第四4I*_ Xinrpup ro up2*第四疝是第二组的子组。加入函数到组中:/*Vngroup group4*/void ftinc2()I)带格式的:标 题2,定义网格后自动调整右缩进,调整中文 西文文字的间距,调整中文与数字的问带格式的:字体颜色:自动设置/*ingroup group4*/void func3()(I7 9房费_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 仃两种方法
23、可以链接到构造函数:#T e st和T e st。链接到析构函数:#T e st和T e st()。链接到类的成员函数:m e m b e r。更详细的链接到类的带参数的成运函数:m e m b e r(i n t)和m e m b e r(i n t,i n t)。链接到变吊潜va r.链 接 到 伞 的l yp e d c f::B。链接到枚举类型:#G k b E m i m。链接到宏定义:A B S(x)“链接至U 一些枚举俏:V i n k T e st:V a l l V a i l e n d l i n k a n d :G V a l l。.带格式的带格式的:标 题2,定义网
24、格后直动调整右缩进,调整中文与西文文字的间距,调整中文与数字的问距带格式的:字体颜色:自动设皆:带格式的:项目符号和编号:带格式的:年标题:8 前言-带格式的:标 题17.10修 改带格式的/*这里填写修改的说明 郑仙斌.2 0 0 4/0 2/1 4 1 */7.11避常注程/*这里填写注释力带格式的:标 题2,定义网格后口动调整分缩进,调整中文号西文文字的间距,调整中文与数字的问,距带格式的:字体颜色:自 动 设 置;带格式的不允许采用“”进行注科_ 第四篇建议规则 7带格式的:标 题2,定义网格后自动调整右缩进,调整中文与西文文字的间距,调整中文与数字的间距带格式的:产体颜色:I动设苴带
25、格式的:字:体颜色:红色本文档上要是为使用C/C+进行程序开发的人员提供小列可参考的编码原则,使得代码在性能、稳定、可移植等方面能有较好的表现。9建议规则9.1 禁止使用八进制数 带格式的:标 题1带格式的带格式的:标 题2,缩进:左侧:0厘米,首 行 缩 进:0厘米,定义网格后自动调整右缩进,调整中调整中文与数字的间距说明:.(因为0 8 6 U这样的常数很容易引起误解弓_文与西文文字的间距,调整中文与,数字的间距9 2 段长的语句(80字符)要分成多行书岂说明:F表达式要在低优先级操作符处划分新行,操作符放在新行之泞,划分出的新行要进行适当的缩进,使排版整齐,语句可读。9.3 结构的设计要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C_C 编程 规范
限制150内