程序编码规范标准详Word文档下载推荐.docx
- 文档编号:14555851
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:10
- 大小:19.05KB
程序编码规范标准详Word文档下载推荐.docx
《程序编码规范标准详Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序编码规范标准详Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
staticboolGetVoyageServiceCount<
int&
count>
结构类型
structNodeValue
{
intwidth;
intheight;
}
枚举类型<
枚举值必须大写且有前缀>
enumVoyageSupportType
{
VOYAGE_OS_SUPPORT_INVALID=1,
VOYAGE_OS_SUPPORT_WINDOWS=2
}
联合类型
unionColor
unsignedchararrColor[3];
structColorRGB
unsignedcharr;
unsignedcharg;
unsignedcharb;
};
类类型
classObject
intm_width;
//宽度
intm_height;
//高度
voidSetValue<
intwidth,intheight>
//成员函数
virtualintGetArea<
//虚函数
inlineintGetWidth<
//内联函数
};
抽象类
classISpriteManager
public:
virtualintGetSpriteID<
=0;
virtualboolIsSpriteExist<
=0;
自定义类型
typedefunsignedintNumber;
全局变量<
我们不主张使用全局变量>
intg_howManyPeople;
静态变量
staticchar*s_pStringBuffer;
常量
constfloatSPRINT_RADIUS=100.0f;
回调函数
typedefint<
*CALLBACK_SYSTEMINIT_FUNC>
<
IKernel*pKernel>
二、程序的版式
1.一行代码只做一件事情,只写一条语句,语句排版整齐;
2.关键字之后要留空格,赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如"
="
、"
+="
"
+"
*"
%"
&
"
||"
"
^"
等二元操作符的前后应当加空格,一元操作符如"
!
~"
++"
--"
〔地址运算符等前后不加空格,象"
[]"
."
->
这类操作符前后不加空格;
3.程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
{}之内的代码块在‘{’右边4格处左对齐,这里的4格也可以是VisualStudio里的一个TAB;
4.代码行最大长度宜控制在80个字符以内;
5.代码应按功能分块,代码块之间必须有空行,而且每个代码块不要超过10行。
语句分行和空格<
▲表示空格>
for▲<
inti▲=▲0,▲j▲=▲0;
i▲<
▲backBufferWidth>
▲&
▲<
j▲<
▲backBufferHeight>
i++,▲j++>
...//programcode
if▲<
n▲>
▲5>
…
elseif▲<
n▲<
▲0>
else
while▲<
a▲>
▲b>
do
}while▲<
switch▲<
n>
case▲1:
▲▲▲▲{
▲▲▲▲w▲=▲w▲+▲2;
break;
代码块
………
//获得字符串长度。
intlength=<
int>
strlen<
pString>
//如果长度为空,直接将当前String类对象置空。
if<
0==length>
m_pString=NULL;
m_length=0;
三、注释
1.对外暴露的模块接口全部要求使用"
doxygen"
注释对文件、类、函数、变量进行注释;
2.所有文件和函数必须有功能说明注释,这里不要使用"
注释<
便于生成程序文档>
;
3.代码块的起始处必须有该代码块的功能说明注释;
4.通信的消息和命令必须有功能和参数注释。
注释示例:
接口文件首部
/**
filevarithmetic.h
briefIString模块是voyage引擎开发以及游戏开发所使用的
算法集合模块。
authorArmterlaX
*/
接口函数注释
注意:
这些接口注释都是写在头文件里的。
接口参数要写[IN]或者是[OUT]以表明参数是输入参数还是输出参数。
函数接口注释
brief对任意类型元素的数组进行快速排序。
parampHead
[IN]元素数组首地址。
paramppDstHead
[OUT]输出一组经过排序的指针。
voidQuickSort<
void*pHead,void**ppDstHead>
类接口注释
briefIString类是用于在Voyage引擎内部进行字符串处理的类。
IString类可以完成快速的字符串连接、分割、字串查找、
字串修改等功能。
classIString
/**
briefIString默认构造函数。
remarks使用默认构造函数构造IString对象不会
申请任何堆内存。
*/
IString<
brief使用标准字符串构造IString类对象。
parampString
[IN]指定源字符串。
也就是使用哪个字符串构造当前IString对象。
remarks这个构造办法会申请堆内存,构造时调用一次堆分配。
分配空间大小与参数指定的字符串长度加1相等。
constchar*pString>
brief析构函数,如果当前IString类对象已经申请了堆内存,
该函数会释放这个堆内存。
~IString<
通信的消息和命令
\brief聊天内容信息
\param聊天类型,类型int
\param聊天内容,类型wstring
MSG_SERVER_SPEECH=1001
模块内部注释示例:
文件首部
/*
file$FILE$
brief文件说明
author%USERNAME%
date$DATE$
函数注释
//做地形的可视检测
intTerrainSubObject:
:
IsVisible<
intx,intz>
变量注释
intValCol;
//修改表格的第几列数据
四、服务端平台无关
1.服务端程序不要使用依赖于操作系统的API和数据类型,以及和操作系统相关的规则,以便于未来Windows和Linux平台切换。
五、服务端表格操作
1.服务端表格"
Record"
的名称定义也要符合命名规范;
2.在操作时不能直接用数字表示列号;
//表格列号的定义
enum
CCR_CLONE_SERIAL=0,
CCR_CYCLE_TIME,
CCR_INTO_COUNT,
CCR_COL_COUNT
…………………
//表格定义和访问
pKernel->
AddRecord<
index,"
CloneCountRec"
CCR_COL_COUNT,128>
pKernel->
SetRecordColType<
CCR_CLONE_SERIAL,VARTYPE_INT>
//副本号
CCR_CYCLE_TIME,VARTYPE_INT>
//进入时间
CCR_INTO_COUNT,VARTYPE_INT>
//进入次数
六、客户端文件读写
1.客户端必须使用引擎提供的API进行文件的打开、读写、关闭等操作。
HANDLEhFile=_CORE_API->
fio->
_CreateFile<
filename,GENERIC_READ,0,OPEN_EXISTING>
hFile==INVALID_HANDLE_VALUE>
returnfalse;
DWORDLength=_CORE_API->
_GetFileSize<
hFile,NULL>
if<
Length>
0>
char*pBuffer=newchar[Length+1];
_CORE_API->
_ReadFile<
hFile,
<
void*>
pBuffer,Length,NULL>
_CloseHandle<
hFile>
七、客户端内存操作
1.分配内存并调用默认构造函数:
char*p=Voy_New<
char,23>
等价于char*p=newchar[23];
CUnit*p=Voy_New<
CUnit,2>
等价于CUnit*p=newCUnit[2];
CUnit,1>
等价于CUnit*p=newCUnit;
2.释放内存并调用析构函数:
Voy_Delete<
p>
如果p是某个类的指针,如:
CUnit*pUnit=Voy_New<
char*p=<
char*>
pUnit;
这个时候不会调用CUnit的析构函数,因为传给Voy_Delete的指针是一个char*的指针,Voy_Delete认为char*指针没有析构函数。
因此,这种情况下,必须把p转换为Voy_Delete可接受的格式:
对指针的引用>
CUnit*&
//这样就能正确地调用析构函数
Voy_Delete和V
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 编码 规范 标准