




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C/C++程序编码规范
BBTNL.COM有限责任公司研发中心
二。一六年三月
修改记录:
日期版本说明编制/修改人
2007-1-15V0.1初稿编制完成。BBTNL
2007-1-30VI.0软件组讨论通过,并正式发布实施。BBTNL
2011-1-20VI.1修改为公司研发部规范。BBTNL
2016-3-14VI.2修订部分内容,改为研发中心规范。XXX
前言
软件编程规范的目的是为了统一软件编程风格,提高软件源程序的可读性、可靠性和
可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生
产力。
本规范是针对C/C++语言的编程规则,其它编程语言可以参照此规范执行。本规范适
用于本中心所有产品的软件源程序,同时考虑到不同产品和项目的实际开发特性,本规范
分成规则性和建议性两种:对于规则性规范,要求所有软件开发人员严格执行;对于建议
性规范,各项目编程人员可以根据实际情况选择执行。本规范的示例都以C/C++语言描述。
本规范的内容包括:基本原则、文件结构、程序的版式、注释、命名规则、变量常量
与类型、表达式和语句、函数设计、可靠性、可测试性等。规范最后给出了标准模板供软
件人员参考。
本规范自生效日期起,对以后新编写的和修改的代码有约束力。对以前的代码不要求
进行修改。对于由开发工具自动生成的代码可以不约束。
对本规范中所使用的术语解释如下:
原则:编程时应该坚持的指导思想。
规则:编程时必须遵守的约定。
建议:编程时必须加以考虑的约定。
说明:对此规则或建议的必要的解释。
正例:对此规则或建议给出的正确例子。
反例:对此规则或建议给出的反面例子。
AAA电子研发中心
2016年03月
1
目录
刖B...................................................1
目录..............................................................1
第一章基本原则....................................................1
第二章文件结构...................................................2
2.1版权和版本的声明..............................................2
2.2头文件的结构..................................................2
2.3定义文件的结构................................................3
2.4文件结构的规则和建议..........................................3
第三章程序的版式.................................................5
3.1空行..........................................................5
3.2代码行........................................................6
3.3代码行内的空格................................................6
3.4对齐..........................................................8
3.5长行拆分......................................................9
3.6修饰符的位置.................................................10
3.7预处理命令...................................................10
第四章注释.......................................................12
第五章命名规则..................................................15
第六章变量、常量与类型.........................................19
6.1变量与常量...................................................19
6.2类型.........................................................22
第七章表达式和语句.............................................27
7.1运算符的优先级...............................................27
7.2操作符.......................................................28
7.3复合表达式...................................................28
7.4if语句.....................................................29
7.5循环语句的效率...............................................31
7.6for语句的循环控制变量......................................32
7.7switch语句.................................................33
7.8while语句..................................................34
7.9goto语句...................................................35
第八章函数设计..................................................36
1
8.1参数.........................................................36
8.2返回值.......................................................37
8.3函数内部实现的规则...........................................39
8.4函数调用.....................................................42
第九章可靠性....................................................45
9.1内存管理.....................................................45
9.2指针的使用...................................................46
9.3函数.........................................................47
第十章可测试性..................................................48
附录.............................................................51
附录A头文件模版(规范性模版)..................................51
附录B实现文件模版(规范性模版)................................51
参考文献..........................................................52
2
凌久电子研发中心C/C+程序编码规范
第一章基本原则
【原则1-1】首先是为人编写程序,其次才是计算机。
这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、
版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。
【原则1-2]保持代码的简明清晰,避免过分的编程技巧。
简单是最美。保持代码的简单化是软件工程化的基本要求。不要过分追求技巧,否则
会降低程序的可读性。
【原则1-3]所有的代码尽量遵循ANSIC标准。
说明:
所有的代码尽可能遵循ANSIC标准,尽量不使用ANSIC未定义的或编译器扩展的功
能。
【原则1-4]编程时首先达到正确性,其次考虑效率。
编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考
虑程序的效率和资源占用。
【原则1-51避免或少用全局变量。
过多地使用全局变量,会导致模块间的紧耦合,违反模块化的要求。
【原则1-6]尽量避免使用goto语句。
【原则1-7]尽可能复用、修正老的代码。
尽量选择可借用的代码,对其修改优化以达到自身要求。
【原则1-8]减少同样的错误出现的次数。
事实上,我们无法做到完全消除错误,但通过不懈的努力,可以减少同样的错误出现
的次数。
1
凌久电子研发中心C/C+程序编码规范
第二章文件结构
每个C/C++程序通常分为两个文件•一个文件用于保存程序的声明
(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),
称为定义(definition)文件。
C/C++程序的头文件以、'.h〃为后缀,C程序的定义文件以、'.c〃为后缀,C++程序的定
义文件通常以''.cpp〃为后缀(也有一些系统以、'.cc〃或'、.cxx〃为后缀)。
2.1版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头,见示例2-1。
/***********************************************************
*Copyright(c)20xx,BBTNL.COM有限责任公司
*Allrightsreserved.
*
*文件名称:filename.h
*当前版本:2.0
*内容摘要:简要描述本文件的内容
*其他说明:
*
*作者:输入作者(或修改者)名字
*完成版本:1.0
*完成日期:20xx-xx-xx
*
*修改记录L(当文件版本发生较大变化的时候进行记录)
*修改日期:20xx-xx-xx
*版本号:2.0
*修改人:输入修改者的名字
*移改内容■:变更原因和内容描述
**********************************************************/
示例2-1文件版权和版本的声明
2.2头文件的结构
头文件的结构见示例2-2。
文件头(参见示例2-1文件版权和版本的声明)
#ifndef文件名_H(全大写)
#define文件名_H
其他条件编译选球
include(依次为标准库头文件、非标准库头文件)
常量定义
全局宏
全局数据类型
全局函数原型
2
凌久电子研发中心C/C+程序编码规范
类定义
模板(template)(包括C++中的类模板和函数模板)
____#endif
示例2-2C/C++头文件的结构
2.3定义文件的结构
定义文件的结构参见示例2-3。
文件头(参见示例2-1文件版权和版本的声明)
修改历史记录(源码修改记录)
#include(依次为标准库头文件、非标准库头文件)
常量定义
文件内部使用的宏
文件内部使用的数据类型
全局变量
本地变量(即静态全局变量)
局部函数原型
类的实现
全局函数实现
局部函数实现
示例2-3C++/C定义文件的结构
2.4文件结构的规则和建议
【规则2-1】遵循统一的布局顺序来书写头文件和定义文件。
【规则2-2】使用注释块分离头文件和定义文件中的各节。
正例:
/***********************************************************
*数据类型定义*
★****************************★★★★★★★★★★★★★★★★★★★★★★★★★★★★**/
typedefunsignedcharBOOLEAN;
*函数原型*
***********************************************************/
intdoSomething(void);
【规则2-3]为了防止头文件被重复引用,必须使用ifndef/define/endif结构产生
3
凌久电子研发中心C/C+程序编码规范
预处理块。
【规则2-4】用尖括号<>引用标准库头文件,用双引号””引用非标准头文件。
【规则2-5】禁止在#include中使用绝对路径。
说明:
在程序的其他地方(如project属性设置、图标资源引用、数据文件路径等)也应该
使用相对路径。
K建议2-1』头文件中只存放''声明",不存放''定义”。
R建议2-2》不提倡使用全局变量,尽量不要在头文件中出现象externintvalue这
类声明。
4
凌久电子研发中心C/C+程序编码规范
第三章程序的版式
版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程
序风格的重要构成因素。
3.1空行
空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更清晰。
【规则3-1]在每个类声明之后、每个函数定义结束之后添加空行。
正例:
/*空行*/
voidfunctionl(...)
(
}
/*空行*/
voidfunction2(...)
)
/*空行*/
voidfunctions(...)
}
【规则3-2]在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行
分隔。
正例:
/*空行*/
while(condition)
(
statementl;
/*空行*/
if(condition)
(
statement2;
)
else
(
statements;
)
/*空行*/
statement4;
5
凌久电子研发中心C/C+程序编码规范
3.2代码行
【规则3-31一行代码只做一件事情,如只定义一个变量,或只写一条语句。
【规则3-4】if、for、while,do等语句自占一行,执行语句不得紧跟其后。不论执
行语句有多少都要加{}。这样可以防止书写失误。
下表是风格良好和不良的代码行比较:
intwidth;/*宽度*//*宽度高度深度*/
intheight;/*高度*/intwidth,height,depth;
intdepth;/*深度*/
x=a+b;
y=c+d;x=a+b;y=c+d;z=e+f;
z=e+f;
if(width<height)
(if(width<height)doSomething();
doSomething();
}
for(init;condition;update)
(for(init;condition;update)
doSomething();doSomething();
)other();
/*空行*/
other();
注:左边为风格良好的代码行,右边为反l格不良的代码行。
(建议3-12尽可能在定义变量的同时初始化该变量(就近原则)。
K建议3-2』源程序中关系较为紧密的代码应尽可能相邻。
3.3代码行内的空格
【规则3-5】关键字之后要留空格。const、virtual、inline^case等关键字之后
至少要留一个空格,否则无法辨析关键字;if,for、while等关键字之后应留一个空
格再跟左括号'("以突出关键字。
【规则3-6】函数名之后不要留空格,紧跟左括号'(,,以与关键字区别。
6
凌久电子研发中心C/C+程序编码规范
【规则3-71'(,向后紧跟,'),、',,、';,向前紧跟,紧跟处不留空格。
【规贝U3-8】之后要留空格,如function(x,1y,-Z)。如果不是一行的结束符
号,其后要留空格,如for_(init;-condition;-update)。
【规则3-9]赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如
'、+=,,、、>=,,、、'<=〃、、'+"、'、*,,、'、¥,、''&&"、、'||"、、'八"等二元操作符的前后
应当加空格。
【规则3-10】一元操作符如(地址运算符)等前后不加
空格。
【规则3-11]这类操作符前后不加空格。
【规则3-12]注释与注释内容之间要用一个空格进行分隔。
正例:
/*一注释内容一*/
//一注释内容
反例:
/*注释内容*/
//注释内容
K建议3-32对于表达式比较长的for语句和if语句,紧凑起见可以适当地去掉一些空
格。
正例:
如for~(i=0;-i<10;/++)和if_((a<=b)(c<=d))
下表是代码行内的空格的例子:
void^funcl(int^x,^int^y,_int-z);/*良好的风格*/
void-funclj(int_x,int_y,int^z);/*不良的风格*/
if_(yeaj>=-2000)/*良好的风格*/
if(year>=2000)/*不良的风格*/
((a>=b)_&&_(c<=d))/*良好的风格*/
if(a>=b&&c<=d)/*不良的风格*/
for_(i=0;-i++)/*良好的风格*/
for(i=0;i<10;i++)/*不良的风格*/
for_(i_=j0;JO;_ij++)/*过多的空格*/
7
凌久电子研发中心C/C+程序编码规范
/*良好的风格*/
x=a<b?a:b;/*不良的风格*/
int-*Xi=-&y;/*良好的风格*/
int_*-Xi=_&_y;/*不良的风格*/
array[5]j=-0;/*不要写成array_[_=_0;*/
a.function();/*不要写成a^.^function();*/
b->function();/*不要写成btJ->CJfunction();*/
3.4对齐
【规则3-13]禁止使用TAB键,必须使用空格进行缩进。缩进为4个空格。
【规则3-14]程序的分界符'{,和'},应独占一行并且位于同一列,同时与引用它们的
语句左对齐。
do-while语句和结构的类型化时可以例外,while条件和结构名可与}在同一行。
【规则3-15]{}之内的代码块在'{,右边数格处左对齐。
【规则3-16]结构型的数组、多维的数组如果在定义时初始化,按照数组的矩阵结构分
行书写。
正例:
intaiNumbers[4][3]=
{
1,1,1,
2,4,8,
3,9,27,
4,16,64
};
【规则3-171相关的赋值语句等号对齐。
正例:
tPDBRes.wHead=0;
tPDBRes.wTail=wMaxNumOfPDB-1;
tPDBRes.wFree=wMaxNumOfPDB;
tPDBRes.wAddress=wPDBAddr;
tPDBRes.wSize=wPDBSize;
K建议3-41在switch语句中,每一个case分支和default要用{}括起来,{}
中的内容需要缩进。
下表是风格良好和不良的对齐比较。
8
凌久电子研发中心C/C+程序编码规范
voidfunction(intx)voidfunction(intx){
{.../*programcode*/
.../*programcode*/)
}
if(condition)if(condition){
(.../*programcode*/
.../*programcode*/)
}else{
else.../*programcode*/
{)
.../*programcode*/
)
for(init;condition;update)for(init;condition;update){
(.../*programcode*/
.../★programcode*/)
)
while(condition)while(condition){
{.../*programcode*/
.../*programcode*/}
)
如果出现嵌套的{},则使用缩进对齐,如:
|
{
}
)
注:左边为风格良好的对齐,右边为风格不良的对齐。
3.5长行拆分
【规则3-18]程序中一行的代码和注释不能超过80列。
【规则3-19]长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便
突出操作符)。拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
【规则3-20】函数声明时,类型与名称不允许分行书写。
正例:
externdoubleFARcalcArea(doubledWidth,doubledHeight);
反例:
externdoubleFAR
calcArea(doubledWidth,doubledHeight);
下表是长行的拆分示例:
if((very_longer_variablel>=very_longer_variablel2)
&&(very_longer_variable3<=very_longer_variablel4)
&&(verylongervariable5<=v6ryjLongervariablel6))
9
凌久电子研发中心C/C+程序编码规范
doSomething();
}
virtualCMatrixmultiplyMatrix(CMatrixleftMatrix,
CMatrixrightMatrix);
for(very_longer_initialization;
very_longer_condition;
very_longer_update)
(
doSomething();
}
3.6修饰符的位置
【规则3-21】应当将修饰符*和&紧靠变量名。
正例:
char*name;
int*x,y;/*此处y不会被误解为指针*/
3.7预处理命令
【规则3-22]预处理命令应与其他代码一样,采用垂直缩进的编排格式。
说明:
为了明确地表明这是预处理命令,,犷符号仍然放在每行的第一列。
正例:
#ifdefDEBUG
#ifdefTRACE
#defineTRACKING1
#else
#defineTRACKING0
#endif/*TRACE*/
#endif/*DEBUG*/
【规则3-23]#define常量相当于数据定义,应该以相似的方式布局,垂直对齐,并按
功能分组。
正例:
#definePACKET_SIZE20
#defineBUF_SIZE_MAX256
#defineWIN^MASK-OxFOO
【规则3-24]多于一行的宏定义,与函数定义相似,其布局也应相似,根据一行一个动
作的原则折行,并垂直对齐行尾的续行符,V。
说明:
始终用大括号把多行宏括起来,这可以避免在宏展开时出现难以察觉的错误。
正例:
#defineTRACE_IN(fnName)\
10
凌久电子研发中心C/C+程序编码规范
if(TRACKING)
printf(''TraceEnter:%s\n〃,(fnName));
}
else
(
if(DEBUGGING)
debugPush(''EnteringFunction:z,,(fnName));\
)\
}
}
【规则3-25]禁止使用#undef命令。
说明:
重新定义宏使程序可读性差,是不良的编程习惯。
11
凌久电子研发中心C/C+程序编码规范
第四章注释
C语言的注释符为C++语言中,程序块的注释常采用行注释一
般采用注释通常用于:
(1)版本、版权声明;
(2)函数接口说明;
(3)重要的代码行或段落提示。
虽然注释有助于理解代码,但注意不可过多地使用注释。
【规则4-1]一般情况下,源程序有效注释量必须在20%以上。
注释是对代码的''提示",而不是文档。程序中的注释不可喧宾夺主,注释太多了会让
人眼花缭乱。注释的花样要少。如果代码本来就是清楚的,则不必加注释。否则多此一举,
令人厌烦,例如:
i++;/*i加1,多余的注释*/
【规则4-2】边写代码边注释,修改代码同时修改相应的注释,保证注释与代码的一致性。
【规则4-3】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。
【规则4-4】使用中文进行注释。尽量避免在注释中使用缩写,特别是不常用缩写。
说明:
对于特殊要求的可以使用英文注释,如工具不支持中文或国际化版本。
【规则4-5]注释的位置应与被描述的代码相邻,可以放在代码的上方或右方(对单条语
句的注释),不可放在下方,如放于上方则需与其上面的代码用空行隔开。
【规则4-6]注释与所描述内容进行同样的缩排。
【规则4-7】当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便
于阅读。
正例:
voidmain()
if(...)
凌久电子研发中心C/C+程序编码规范
while(...)
}/*endofwhile(...)*//*指明该条while语句结束*/
}/*endofif(...)*//*指明是哪条语句结束*/
}/*endofvoidmain()*//*指明函数的结束*/
【规则4-8】文件头部必须进行注释,包括:.h文件、.c文件、.cpp文件、.inc文件、.def
文件、编译说明文件.cfg等。
文件头部的注释内容见2.1节。
【规则4-9】函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返
回值、访问和修改的表、修改信息等。
说明:
下面是函数头部的注释格式:
/**************************************************************
*函数名称:函数名称
*功能描述:函数功能、性能等的描述
*输入参数:输入参数说明,包括每个参数的作用、取值说明及参数间的关系
*输出参数:对输出参数的说明
*返回值:函数返回值的说明
*其他说明:其他说明
*修改日期修改人修改内容*
*20xx/xx/xxXXXXXXX
【规则4-10]全局变量要有详细的注释,包括对其功能、取值范围、访问信息及访问时
注意事项等的说明。
正例:
/*
*变量作用:(错误状态码)
*变量范围:例如Q-SUCCESS1-Tableerror
*访问说明:(访问的函数以及方法)
*/
BYTEg_ucTranErrorCode;
【规则4-11】对分支语句(条件分支、循环语句等)必须编写注释。
【规则4-12】C语言的注释符为C++语言中,程序块的注释采用
13
凌久电子研发中心C/C+程序编码规范
行注释采用。
K建议4-12通过对函数或过程、变量、结构等正确的命名以及合理地组织代码结构,
使代码成为自注释的。
14
凌久电子研发中心C/C+程序编码规范
第五章命名规则
本章对程序中的所有标识符(包括变量名、常量名、函数名、类名、结构名、宏定义
等)的命名作出约定。
【规则5-1)函数名和变量名采用"首字母小写,后面连接的单词的首字母都大写”的方
式。
说明:
专有名字(如CPU、DDR等)保持原有的写法。
【规则5-2]标识符要采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命
名。
标识符应当直观且可以拼读,可望文知义,避免使人产生误解。程序中的英文单词一
般不要太复杂,用词应当准确。
【规则5-3】标识符只能由26个英文字母,10个数字,及下划线的一个子集来组成,并
严格禁止使用连续的下划线,下划线也不能出现在标识符头或结尾(预编译开关除外).
说明:
这样做的目的是为了使程序易读。因为variable_name和variable__name很
难区分,下划线符号若出现在标识符头或结尾,容易与不带下划线的标识符混淆。
【规则5-4】标识符的命名应当符合''min-length&&max-information”原则。
说明:
较短的单词可通过去掉''元音"形成缩写,较长的单词可取单词的头几个字母形成缩
写,一些单词有大家公认的缩写,常用单词的缩写必须统一。协议中的单词的缩写与协议
保持一致。对于某个系统使用的专用缩写应该在某处做统一说明。
正例:
如下单词的缩能够被大家认可:
temp可缩写为tmp;
flag可缩写为fig;
statistic可缩写为stat;
increment可缩写为inc;
message可缩写为msg;
规定的常用缩写如下:
常用词缩写
ArgumentArg
BufferBuf
ClearClr
ClockClk
CompareCmp
ConfigurationCfg
15
凌久电子研发中心C/C+程序编码规范
ContextCtx
DelayDly
DeviceDev
DisableDis
DisplayDisp
EnableEn
ErrorErr
FunctionFnct
HexadecimalHex
HighPriorityTaskHPT
I/OSystemIOS
InitializeInit
MailboxMbox
ManagerMgr
MaximumMax
MessageMsg
MinimumMin
MultiplexMux
OperatingSystemOS
OverflowOvf
ParameterParam
PointerPtr
PreviousPrev
PriorityPrio
ReadRd
ReadyRdy
RegisterReg
ScheduleSched
SemaphoreSem
StackStk
SynchronizeSync
TimerTmr
TriggerTrig
WriteWr
【规则5-5】程序中不要出现仅靠大小写区分的相似的标识符。
【规则5-6】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
说明:
下面是一些在软件中常用的反义词组。
add/removebegin/endcreate/destroyinsert/delete
first/lastget/releaseincrement/decrementput/get
add/deletelock/unlockopen/closemin/max
old/newstart/stopnext/previoussource/target
show/hidesend/receivesource/destinationcut/paste
up/down
【规则5-7】宏、常量名都要使用大写字母,用下划线分割单词。
正例:
如DISP_BUF_SIZE>M1N_VALUE、MAX_VALUE等等。
16
凌久电子研发中心C/C+程序编码规范
【规则5-8】变量名长度应小于31个字符,以保持与ANSIC标准一致。不得取单个字
符(如i、j、k等)作为变量名,但是局部循环变量除外。
说明:
变量,尤其是局部变量,如果用单个字符表示,很容易出错(如1误写成1),而编
译时又检查不出,则有可能增加排错时间。过长的变量名会增加工作量,会使程序的逻辑
流程变得模糊,给修改带来困难,所以应当选择精炼、意义明确的名字,才能简化程序语
句,改善对程序功能的理解。
【规则5-9】程序中局部变量不要与全局变量重名。
说明:
尽管局部变量和全局变量的作用域不同而不会发生语法错误,但容易使人误解。
【规则5-10]使用一致的前缀来区分变量的作用域。
说明:
变量活动范围前缀规范如下:
g_:全局变量(global)
s_:模块内静态变量(static)
m_:类的数据成员(member)
$:局部变量不加范围前缀
【规则5-111使用一致的小写类型指示符作为前缀来区分变量的类型。
常用变量类型前缀列表如下:
iint
ffloat
ddouble
cchar
ucunsignedchar或BYTE
1long
ppointer
bBOOL
hHANDLE
wunsignedshort或WORD
dwDWORD或unsignedlong
a数组,arrayofTYPE
str字符串
t结构类型
以上前缀可以进一步组合,在进行组合时,数组和指针类型的前缀指示符必须放在变
量类型前缀的首位。
【规则5-12]完整的变量名应由前缀+变量名主体组成,变量名的主体应当使用''名词"
或者''形容词+名词”,且首字母必须大写。
各种前缀字符可能组合使用,在这种情况下,各前缀顺序为:变量作用域前缀、变量
类型前缀。
正例:
floatg_fValue;/*类型为浮点数的全局变量*/
17
凌久电子研发中心C/C+程序编码规范
char*pc01dChar;/*类型为字符指针的局部变量*/
【规则5-13】函数名用单词组合时,应当使用''动词"或者''动词+名词”(动宾词组)。
函数名力求清晰、明了,通过函数名就能够判断函数的主要功能。函数命名采用大小
写字母结合的形式,但专有名词不受限制。
【规则5-14】结构名、联合名、枚举名由前缀t开头。
【规则5-15】事件名由前缀en开头(event)。
【规则5-16]类名采用大小写结合的方法。在构成类名的单词之间不用下划线,类名在
开头加上C,类的成员变量统一在前面加m_前缀。
C++Builder中的类名在开头加T。
正例:
voidObject::setValue(intiWidth,intiHeight)
(
m_iWidth=iWidth;
m_iHeight=iHeight;
}一
【规则5-17]为了防止某一软件库中的一些标识符和其它软件库中的冲突,可以为各种
标识符加上能反映软件性质的前缀。
例如三维图形标准OpenGL的所有库函数均以gl开头,所有常量(或宏定义)均以GL
开头。
K建议5Tli尽量避免名字中出现数字编号,如valuel、value2等,除非逻辑上的确
需要编号。
【规则5-18]标识符前不使用项目、产品、部门的标识。
说明:这样做的目的是为了代码的可重用性。
18
凌久电子研发中心C/C+程序编码规范
第六章变量、常量与类型
变量、常量和数据类型是程序编写的基础,它们的正确使用直接关系到程序设计的成
败,变量包括全局变量、局部变量和静态变量,常量包括数据常量、常量类型数据和指针
常量,类型包括系统的数据类型和自定义数据类型。本章主要说明变量、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC PAS 61980-5:2024 EN Electric vehicle wireless power transfer (WPT) systems - Part 5: Interoperability and safety of dynamic wireless power transfer (D-WPT) for electric
- 保函担保的合同
- 新能源储能系统研发合作项目投资合同
- 产品运输服务合作合同
- 微信在线签署合同
- 货物运输合同与货物运输合同
- 绿化苗木购销合同书
- 电子产品工程安装合同
- 动物疫病防控技术服务合同
- 建筑安装工程合同书
- 湖北省黄冈市2023-2024学年五年级上学期数学期中试卷(含答案)
- ××管业分销市场操作方案
- 《ISO 41001-2018 设施管理- 管理体系 要求及使用指南》专业解读与应用指导材料之15:“7支持-7.6 组织知识”(雷泽佳编制-2024)
- 2024年建设工程质量检测人员-建设工程质量检测人员(主体结构工程)考试近5年真题集锦(频考类试题)带答案
- 《向量共线定理》同步课件
- 小学数学学习经验交流课件
- 2024年第二批政府专职消防员招录报名表
- 注塑模具基础知识
- 2024年单招考试题
- 三年级数学下册期末测试卷及答案【可打印】
- 苏教版小学语文上册教学研究论文
评论
0/150
提交评论