程序编码规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蜗牛游戏程序编码规范 (版本 0.1)

规范说明: (1)

一、命名规则 (1)

二、程序的版式 (3)

三、注释 (5)

四、服务端平台无关 (7)

五、服务端表格操作 (7)

六、客户端文件读写 (7)

七、客户端内存操作 (8)

八、脚本内的注释 (9)

规范说明:

制定该规范的目的是让程序清晰易懂、易维护、易管理。该规范为强制规范,必须执行,如果有没涉及的地方请参考《高质量C++-C编程指南》。当所在编程环境(如MFC、Linux)与本规范有差异时,可以使用所在编程环境的规范,但是同一个项目必须是统一的规范。

最后希望大家都能养成一个良好的程序习惯,一个好的习惯受益终身!

一、命名规则

1.所有命名应当直观且可拼读,并具有实际意义;

2.类名和函数名用大写字母开头的单词组合而成,接口类名以I开头;

3.常量全用大写的字母,用下划线分割单词,尽量不要使用宏;

4.类的数据成员加前缀m_,全局变量加前缀g_,静态变量加前缀s_;

5.变量名第一个字母小写,使用“名词”或“形容词+名词”的词义表示法;

示例:

·局部变量

char *pStringBuffer;

int &stringFindResult;

bool isEngineStartup;

·函数命名

unsigned int GetVoyageCoreState();

static bool GetVoyageServiceCount(int &count);

·结构类型

struct NodeValue

{

int width;

int height;

}

·枚举类型(枚举值必须大写且有前缀)

enum VoyageSupportType

{

VOYAGE_OS_SUPPORT_INVALID = 1,

VOYAGE_OS_SUPPORT_WINDOWS = 2

}

·联合类型

union Color

{

unsigned cha r arrColor[3];

struct ColorRGB

{

unsigned char r;

unsigned char g;

unsigned char b;

};

};

·类类型

class Object

{

int m_width; //宽度

int m_height; //高度

void SetValue(int width, int height); // 成员函数

virtual int GetArea(); // 虚函数

inline int GetWidth(); // 内联函数};

·抽象类

class ISpriteManager

{

public:

virtual int GetSpriteID() = 0;

virtual bool IsSpriteExist() = 0;

};

·自定义类型

typedef unsigned int Number;

·全局变量(我们不主张使用全局变量)

int g_howManyPeople;

·静态变量

static char *s_pStringBuffer;

·常量

const float SPRINT_RADIUS = 100.0f;

·回调函数

typedef int(*CALLBACK_SYSTEMINIT_FUNC)(IKernel * pKernel);

二、程序的版式

1.一行代码只做一件事情,只写一条语句, 语句排版整齐;

2.关键字之后要留空格,赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格,一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格,象“[]”、“.”、“->”这类操作符前后不加空格;

3.程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。{ }之内的代码块在‘{’右边4格处左对齐,这里的4格也可以是Visual Studio里的一个TAB;

4.代码行最大长度宜控制在80个字符以内;

5.代码应按功能分块,代码块之间必须有空行,而且每个代码块不要超过10行。

示例:

·语句分行和空格(▲表示空格)

for▲(int i▲=▲0,▲j▲=▲0;

(i▲<▲backBufferWidth)▲&&▲(j▲<▲backBufferHeight);

i++,▲j++)

{

... // program code

}

if▲(n▲>▲5)

{

}

else if▲(n▲<▲0)

{

}

else

{

}

while▲(a▲>▲b)

{

}

do

{

}while▲(a▲>▲b);

switch▲(n)

{

case▲1:

▲▲▲▲{

▲▲▲▲w▲=▲w▲+▲2;

}

break;

}

·代码块

………

// 获得字符串长度。

int length = (int)strlen(pString);

// 如果长度为空,直接将当前String类对象置空。

相关文档
最新文档