引擎之旅 前传:C++代码规范

2022-11-15,,,,

自己以前写代码时,一个项目一个风格。单人开发的工作使得我并没有注意到代码规范性和可读性的问题。每当项目结束后,看到自己杂乱无章的代码,完全没有二次开发和重构的欲望。

写代码就应该像写诗一样优雅。 by:沃茨基硕德

由于是一个新的项目的重新起航。千里之堤,溃于蚁穴。我将代码规范作为我整个项目的前传,顺便也把我之前的陋习给改掉。通过在网上对于C++代码规范的搜索,我找到了Google开源项目风格指南[译文]。

参考这份指南,结合我个人的习惯,我也给自己的项目制定了一个标准。下面将各个部分进行定义和规范。(不会完全按照指南,只是为了我的项目代码看起来更统一)

头文件

通常一个.cpp文件需要对应一个.h文件。(单元测试代码和包含main()函数的cpp文件除外。)
如果.h文件声明了一个模板和内联函数,规定将函数实现写在头文件中。
每个头文件必须使用#define保护,以防止多重编译

#ifndef HeadName
#define HeadName //... #endif //HeadName

前置声明能不用则尽量不用。优先处理好头文件之间的关系,若不得不使用,则要注明依赖关系。
内联函数:代码行数<10 才使用内联函数

命名

作用域、类名、函数名用大写字母开头

namespace TurboEngine{
class Time
{
public:
int GetFps(); public:
static int ms_CalType; //静态变量 ms_
int m_StartTime; //成员变量 m_
const mk_DayInWays; //常量命名 mk_
}
}

注释

使用// 或 /**/即可
文件注释:加上版权
类注释:

// <Description>
// Example:
// xxxxxxxxx(可写可不写)

其他

因为引擎中是分模块的,为了更方便今后整理自己的思绪,我希望自己能够对每一个模块用单独的注释文件进行注释。注释文档主要包括:

描述
文件列表
其他说明
第三方依赖

<Description>
//... <FileList>
//... <Others>
//... <Reference>
//...

整理API文档工具

引擎之旅 前传:C++代码规范的相关教程结束。

《引擎之旅 前传:C++代码规范.doc》

下载本文的Word格式文档,以方便收藏与打印。