程序编码规范标准详Word文档下载推荐.docx

上传人:b****1 文档编号:14555851 上传时间:2022-10-23 格式:DOCX 页数:10 大小:19.05KB
下载 相关 举报
程序编码规范标准详Word文档下载推荐.docx_第1页
第1页 / 共10页
程序编码规范标准详Word文档下载推荐.docx_第2页
第2页 / 共10页
程序编码规范标准详Word文档下载推荐.docx_第3页
第3页 / 共10页
程序编码规范标准详Word文档下载推荐.docx_第4页
第4页 / 共10页
程序编码规范标准详Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

程序编码规范标准详Word文档下载推荐.docx

《程序编码规范标准详Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《程序编码规范标准详Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

程序编码规范标准详Word文档下载推荐.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1