UE4 编码标准
命名规则
-
命名(如类型或变量)中的每个单词需大写首字母,单词间通常无下划线。例如:
Health和UPrimitiveComponent,而非lastMouseCoordinates或delta_coordinates。 -
类型名前缀需使用额外的大写字母,用于区分其和变量命名。例如:
FSkin为类型名,而Skin则是FSkin的实例。-
模板类的前缀为T(template)。
-
继承自
UObject的类前缀为U(UE4 objects)。 -
继承自
AActor的类前缀为A(Actor)。 -
继承自
SWidget的类前缀为S(Slate)。 -
抽象界面类的前缀为I(Interface)。
-
列举的前缀为E(enum)。
-
布尔变量必须以b为前缀(bool)(例如
bPendingDestruction或bHasFadedIn)。 -
其他多数类均以F为前缀(Function),而部分子系统则以其他字母为前缀。
-
-
类型和变量的命名为名词。
-
方法名是动词,以描述方法的效果或未被方法影响的返回值。
- 所有返回布尔的函数应发起true/false的询问,如
IsVisible()或ShouldClearBuffer()。 - 若函数参数通过引用传递,同时该值会写入函数,建议以“Out”做为函数参数命名的前缀(非必需)。此操作将明确表明传入该参数的值将被函数替换。
- 若In或Out参数同样为布尔,以b作为In/Out的前缀,如
bOutResult。
- 所有返回布尔的函数应发起true/false的询问,如
基础C++类型的可移植别名
-
bool代表布尔值(不会假定布尔尺寸)。BOOL不会进行编译。 -
TCHAR代表字符(不会假定TCHAR尺寸)。 -
uint8代表无符号字节(1字节)。 -
int8代表带符号字节(1字节)。 -
uint16代表无符号“短”字符(2字节)。 -
int16代表带符号“短”字符(2字节)。 -
uint32代表无符号整数(4字节)。 -
int32代表带符号整数(4字节)。 -
uint64代表无符号“四字”(8字节)。 -
int64代表带符号“四字”(8字节)。 -
float代表单精确浮点(4字节)。 -
double代表双精确浮点(8字节)。 -
PTRINT代表可能含有指针的整数(不会假定PTRINT尺寸)。
若代码中的整数宽度非重要,可使用C++的 int 和无符号 int 类型(不同的平台上的大小不同)。明确尺寸的类型必须以序列化或复制的格式进行使用。
常量正确性
常量即是文档也是编译器指令,因此应保证所有代码的常量正确。
其中包括:
-
若函数不修改参数,常量指针或引用将传递函数参数,
-
若方法不修改对象,将方法标记为常量,。
-
若循环不修改容器,则在容器上使用常量迭代。

浙公网安备 33010602011771号