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

 

基础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 类型(不同的平台上的大小不同)。明确尺寸的类型必须以序列化或复制的格式进行使用。


 

常量正确性

常量即是文档也是编译器指令,因此应保证所有代码的常量正确。

其中包括:

  • 若函数不修改参数,常量指针或引用将传递函数参数,
  • 若方法不修改对象,将方法标记为常量,。
  • 若循环不修改容器,则在容器上使用常量迭代。