c程序书写规范.docx
《c程序书写规范.docx》由会员分享,可在线阅读,更多相关《c程序书写规范.docx(13页珍藏版)》请在冰点文库上搜索。
c程序书写规范
c,,程序书写规范
篇一:
C语言书写规范
语言书写规范
符号命名规则
符号名包括模块名、常量名、标号名、子程序名等。
这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解。
命名采用匈牙利命名法。
规则如下:
(1)所有宏定义、枚举常数和const变量,用大写字母命名。
在复合词里用下划线隔开每个词。
(2)复合词中每个单词的第一个字母大写。
除了规则以外,避免使用下划线。
(3)类、类型定义和枚举型名的第一个字母大写。
(4)函数名是复合词的,第一个词采用全部小写,随后每个单词采用第一个字母大写,其它字母小写方式;如果是单个词的,采用全部小写方式。
(5)循环变量可采用i,j,k等,不受上述规则限制。
(6)类的成员变量应采用m_开头。
(7)全局变量词头为g_。
(8)临时变量词头为tmp_。
(9)对结构体内的变量命名,遵循变量的具体含义命名原则
(10)用小写字母的前缀表示变量的类型,前缀的下一个字母用大写。
表1
词头类型词头类型
chcharllong
iintegeruunsigned
bbooleanppointer
ffloatlplongpointer
ddoublesstring
ststructureszASCIIstring
bybytenshortint
Hhandlex,y分别为x,y坐标
dwDWORDfnfunction
表2
词头变量名词头变量名
tasktasksigsignal
sbbinarysemaphoreswdwatchdog
smmutualexclusion
semaphorestmtimer
sccountingsemaphoresmsgmessage
pipepipe
例:
#defineARRAY_SIZE24/*规则*/
intg_iFlag;
classMyClass/*规则*/
{
};
voidsomeFunc()/*规则和*/
{
.2.
Q/ECC/BJ010—XX
intnArray[ARRAY_SIZE];
unsignedcharuchByte;
charszName[];
char*pszName=szName;
}
(11)有些词头(如p和u)可以和其它词头组合。
例:
WDOG_IDwdId;
WDOG_IDg_wdId;/*全局watchdogId,故以g_开头*/
名字的长度一般不要过长或过短。
过长的名字会增加工作量,使程序逻辑流程变得模糊;过短的名字无法表达符号的实际意义。
约定长度范围:
3-31;
数据和函数说明
数据说明次序应当规范化,使数据属性容易查找,也有利于测试、排错和维护。
说明的先后次序应固定,应按逻辑功能排序,逻辑功能块内建议采用下列顺序:
整型说明、实型说明、字符说明、逻辑量说明。
如果设计了一个复杂的数据结构,应当通过注释对其变量的含义、用途进行说明。
在函数的声明中使用异常声明。
如:
voidf()throw(toobig,toosmall,divzero);
在声明一个函数时,将它所抛出的异常列出,便于函数的使用者了解可能会发生哪些异常。
程序注释
程序注释是程序员与日后的程序读者之间通信的重要手段之一,注释分为文件注释、函数注释和功能注释。
正规程序的注释应注意:
——注释行的数量占到整个源程序的1/3到1/2。
文件注释位于整个源程序的最开始部分,注释后空两行开始程序正文。
它包括:
——程序标题。
——目的、功能说明。
——文件作者、最后修改日期等说明。
例:
./********************************************************************(空一行)
标题:
功能:
测试VxWorks的各种系统调用.
说明:
该程序测试各种VxWorks的系统调用函数。
包括任务(taks)的创建、挂起及任务间通过信号灯实现同步,通过消息队列进行通讯。
程序创建了两个任务:
一个高优先级的任务和一个低优先级的任务。
两个任务间通过一个二进制的信号灯进行同步,通过消息队列进行通讯。
当前版本:
修改信息:
John,InitialVersion
Tom,Bugxxxxfixed
**************************************************************/
(空2行,开始程序正文)
函数注释通常置于每函数或过程的开头部分,它应当给出函数或过程的整体说明对于理解程序本身具有引导作用。
一般包括如下条目:
——模块标题。
——有关本模块功能和目的的说明。
——调用格式
——接口说明:
包括输入、输出、返回值、异常。
——算法。
如果模块中采用了一些复杂的算法。
例:
file:
//(注释开头应和上一函数空两行)
(注释开头与上一函数最后一行间隔两行)
/********************************************************************标题:
assignmentComplete
功能:
BSC=>MSC消息生成函数,生成assignment_complete指配完成消息(BSMAP消息).格式:
intassignmentComplete(intiCellId,intiServiceChannnelNum,char*pszMSGData)throw(exception1,exception2)
输入:
intiCellId:
MS所在的小区识别
iCellId取值:
0x00-——0xff.4.
Q/ECC/BJ010—XX
intiServiceChannnelNum:
MS所占的业务信道号码
输出:
char*pszMSGData:
指配完成消息数据
返回值:
0x00正常
异常:
exception1异常情况1,exception2异常情况2
********************************************************************/(注释后直接开始程序正文,不空行。
)
功能性注释嵌在源程序体中,用于描述其后的语句或程序段做什么工作,也就是解释下面要做什么,或是执行了下面的语句会怎么样。
而不要解释下面怎么做,因为解释怎么做常常与程序本身是重复的。
例:
/*把amount加到total中*/
total=amount+total;
这样的注释仅仅是重复了下面的程序,对于理解它的工作并没有什么作用。
而下面的注释,有助于读者理解。
/*将每月的销售额amount加到年销售额total中*/
total=amount+total;
函数编写应尽可能短小精悍,一般不超过两屏,以便于调试和理解。
语句结构
为保证语句结构的清晰和程序的可读性,在编写软件程序时应注意以下几个方面的问题:
篇二:
C语言程序代码编写规范
C语言程序代码编写规范
(初级程序员讨论版)
前言
一个好的程序编写规范是编写高质量程序的保证。
清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。
说明
?
?
?
此文挡还在完善改进中,如有不足,欢迎指正。
本文档主要适用于刚刚开始接触编程的初学者。
对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。
目录
1
2
3
代码书写规范注释书写规范命名规范
内容
1代码书写规范
函数定义
每个函数的定义和说明应该从第1列开始书写。
函数名(包括参数表)和函数体的花括号(“{”和“}”)应该各占一行。
在函数体结尾的括号(“}”)后面应该加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。
范例1:
函数的声明
voidmatMyFunction(intn)
{
……
}/*matMyFunction*/
空格的使用
使用空格分割所有演算符号和操作数。
这条规则的例外是“->”,““.”,“()”和“[]”,这些操作符和操作数之间不空格。
当需要把一个程序行的内容分成几行写时,操作符号应该放在行末,而不是下一行的开头。
缩进的设置
代码书写应该遵从结构化的要求,采用缩进的格式。
最小缩进量为4个空格,整个文件内部应该统一,不要混用Tab键和4个空格这两种情况,因为不同的编辑器对Tab键的处理方法不同。
折行的使用
?
?
?
每行的长度不要超过80个字符,当程序行太长时,应该分行书写。
分行时应该按照自然的逻辑关系进行,例如:
不要把一个简单的逻辑判断写在两行上。
分行后的缩进应该按照程序的逻辑关系进行对齐。
例如:
参数表折行后,下面的行应该在参数表左括号的下方。
范例2:
折行的格式
dwNewShape=matAffineTransform(coords,translation,
rotation);
if(((new_>left_border)&&
(new_ ((new_>bottom_border)&&
(new_ {
draw(new_shape);
}
嵌套语句(语句块)的格式
对于嵌套式的语句--即语句块(如,if、while、switch等)应该包括在花括号中。
花括号的左括号应该单独占一行,并与关键字对齐。
建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。
建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。
范例3:
嵌套语句格式
if(value {
if(value!
=0)
{
func(value);
}
}
}else{
error("Thevalueistoobig.");
}/*if(value 2注释书写规范
注释必须做到清晰,准确地描述内容。
对于程序中复杂的部分必须有注释加以说明。
注释量要适中,过多或过少都易导致阅读困难。
注释风格
?
?
?
?
?
C语言中使用一组(/*…*/)作为注释界定符。
注释内容尽量用英语方式表述。
注释的基本样式参考范例4。
注释应该出现在要说明的内容之前,而不应该出现在其后。
除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。
范例4:
几种注释样式
/*
*************************************************
*强调注释
*************************************************
*/
/*
*块注释
*/
/*单行注释*/
inti;/*行末注释*/
何时需要注释
?
?
?
?
?
如果变量的名字不能完全说明其用途,应该使用注释加以说明。
如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。
对于一个比较长的程序段落,应该加注释予以说明。
如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。
如果程序中使用了某个复杂的算法,建议注明其出处。
如果在调试中发现某段落容易出现错误,应该注明。
3命名规范
常量、变量命名
用#define定义的符号常量全部采用大写。
变量命名的基本原则:
?
可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清
楚其含义。
?
不要使用人名、地名和汉语拼音。
?
如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。
?
多个单词组成的变量名,每个单词的首字母应该大写。
如:
dwUserInputValue。
函数命名
函数命名原则与变量命名原则基本相同。
对于初学者,函数命名可以采用“FunctionName”的形式。
篇三:
C语言编写规范
广州市轨道交通自动售检票系统
综合中央计算机系统
C语言编写规范
合同号:
J3SB055生效日期:
XX年1月15日
目录
1.说明....................................................................................................................................................52.程序约定............................................................................................................................................5应用程序的命名.........................................................................................................................5子模块的命名.............................................................................................................................6变量的命名.................................................................................................................................6常量的命名.................................................................................................................................7函数/过程的命名......................................................................................................................7接口命名.....................................................................................................................................7类的命名.....................................................................................................................................8方法的命名.................................................................................................................................8数据库的命名.............................................................................................................................8输入参数的约定.........................................................................................................................9输出参数的约定.........................................................................................................................9返回值的约定.............................................................................................................................9源程序头的注释和规范.............................................................................................................9区的注释...................................................................................................................................10代码中的注释...........................................................................................................................113.接口/函数过程调用的约定...........................................................................................................12头文件(.H文件).........................................................................................................................12函数...............................................................................................................................................13变量定义...................................................................................................................................13参数合法性检查.......................................................................................................................13
执行处理...................................................................................................................................13返回值.......................................................................................................................................134.错误和异常处理规范......................................................................................................................14出错类型定义约定.......................................................................................................................14异常的捕获...................................................................................................................................15异常和错误的处理.......................................................................................................................15
1.说明
为了保证在软件开发过程中,全体成员的代码风格一致,便于维护,提高软件产品的质量和保持开发产品的持续性,特制定本编码规范。
本规范详细规定了源