六一的部落格


行百里者半九十




说明

.clang-format

.gitignore

虚幻引擎编码规范

-
大括号 放在新行
缩进 使用空格

缩进、制表符和空格


缩进

indent

编写代码时, 按下Tab键, 会按制表符宽度留出空位, 用以控制格式

使用制表符 Tab 和空格填充缩进

制表符的宽度可设置, 不同平台制表符的宽度不一, 视觉上, 查看代码会有不习惯的感觉;可在本地设置使用空格, 即用空格替换制表符


缩进使用空格

示例: 缩进使用空格, 制表符宽度 TabWidth 无效;缩进宽度 IndentWidth 生效, 一次缩进对应7个空格

1IndentWidth: '7'
2UseTab: 'Never'
3TabWidth: '9'

缩进使用制表符和空格

若缩进宽度小于制表符宽度, 使用空格填充缩进; 若缩进宽度大于等于制表符宽度, 使用制表符和空格填充缩进

示例: 一次缩进对应7个空格, 不会被替换为制表符;两个缩进对应14个空格, 会被替换为1个制表符加5个空格

1IndentWidth: '7'
2TabWidth: '9'
3UseTab: 'Always'

格式化代码规则

.clang-format

官方文档

YAML标记文件

作为项目的一部分, 描述管理代码文件的统一格式

每行遵循格式:

key: value

设置受约束的开发语言

1Language: Cpp

如果项目中只一种开发语言, 或者所有开发语言使用相同规范, 可忽略该配置


通用样式


Google

一个制表符对应2个空格, 大括号在行尾

1BasedOnStyle: Google

Microsoft

一个制表符对应4个空格, 大括号在新行

1BasedOnStyle: Microsoft

制表符宽度

若缩进使用制表符, 每6个空格替换一个制表符;当缩进宽度和制表符宽度不一致时, 效果很糟糕

1TabWidth: '6'

缩进宽度

1IndentWidth: '4'

缩进样式

  • 空格
    1UseTab: Never
  • 制表符: 源文件中既有空格又有制表符
    1UseTab: Always

设置大括号位置

  • 行尾
    1BreakBeforeBraces: Attach
  • 新行
    1BreakBeforeBraces: Allman

显示时, 每行最大字符个数

为0时, 按输入的实际情况显示

1ColumnLimit: '140'

向前缩进

控制访问说明符的缩进

1AccessModifierOffset: '-4'

头文件排序

1SortIncludes: false

括号换行时, 参数的对齐方式

1AlignAfterOpenBracket: Align
  • 不对齐 DontAlign
    1someLongFunction(argument1,
    2    argument2);
  • 对齐 Align
    1someLongFunction(argument1,
    2                 argument2);

当块较短时, 是否允许写在单行

1AllowShortBlocksOnASingleLine: false
  • 条件语句的执行部分为空, 或只有一行语句时, 可认为语句较短;为false则如下输出
    1while (true)
    2{
    3}
    4while (true)
    5{
    6  continue;
    7}

当If语句较短时, 是否允许写在单行

1AllowShortIfStatementsOnASingleLine: true
1if (true) return;

当函数语句较短时, 是否允许写在单行

-
Inline 若函数体为空, 允许;若函数在类内定义, 允许
InlineOnly 只允许一种情况:函数在类内定义
Empty 只允许一种情况:函数体为空
1AllowShortFunctionsOnASingleLine: Inline

指针和引用的对齐方式

1PointerAlignment: Right
  • Right
    1int *a;
  • Left
    1int* a;

Git仓库同步

.gitignore

虚幻引擎提供模板

告诉Git, 同步时忽略的文件和文件夹


命名约定

虚幻编辑器

虚幻引擎命名规范参考

虚幻编辑器
材质 Material M_
材质实例 Material Instance MI_
基于C++的蓝图类 Blueprint BP_
动画蓝图 Animation Blueprint ABP_
混合空间(1D) Blend Space BS_
动画剪辑 Animation Montage AM_

代码规范



说明

.clang-format

.gitignore

虚幻引擎编码规范

-
大括号 放在新行
缩进 使用空格

缩进、制表符和空格


缩进

indent

编写代码时, 按下Tab键, 会按制表符宽度留出空位, 用以控制格式

使用制表符 Tab 和空格填充缩进

制表符的宽度可设置, 不同平台制表符的宽度不一, 视觉上, 查看代码会有不习惯的感觉;可在本地设置使用空格, 即用空格替换制表符


缩进使用空格

示例: 缩进使用空格, 制表符宽度 TabWidth 无效;缩进宽度 IndentWidth 生效, 一次缩进对应7个空格

1IndentWidth: '7'
2UseTab: 'Never'
3TabWidth: '9'

缩进使用制表符和空格

若缩进宽度小于制表符宽度, 使用空格填充缩进; 若缩进宽度大于等于制表符宽度, 使用制表符和空格填充缩进

示例: 一次缩进对应7个空格, 不会被替换为制表符;两个缩进对应14个空格, 会被替换为1个制表符加5个空格

1IndentWidth: '7'
2TabWidth: '9'
3UseTab: 'Always'

格式化代码规则

.clang-format

官方文档

YAML标记文件

作为项目的一部分, 描述管理代码文件的统一格式

每行遵循格式:

key: value

设置受约束的开发语言

1Language: Cpp

如果项目中只一种开发语言, 或者所有开发语言使用相同规范, 可忽略该配置


通用样式


Google

一个制表符对应2个空格, 大括号在行尾

1BasedOnStyle: Google

Microsoft

一个制表符对应4个空格, 大括号在新行

1BasedOnStyle: Microsoft

制表符宽度

若缩进使用制表符, 每6个空格替换一个制表符;当缩进宽度和制表符宽度不一致时, 效果很糟糕

1TabWidth: '6'

缩进宽度

1IndentWidth: '4'

缩进样式

  • 空格
    1UseTab: Never
  • 制表符: 源文件中既有空格又有制表符
    1UseTab: Always

设置大括号位置

  • 行尾
    1BreakBeforeBraces: Attach
  • 新行
    1BreakBeforeBraces: Allman

显示时, 每行最大字符个数

为0时, 按输入的实际情况显示

1ColumnLimit: '140'

向前缩进

控制访问说明符的缩进

1AccessModifierOffset: '-4'

头文件排序

1SortIncludes: false

括号换行时, 参数的对齐方式

1AlignAfterOpenBracket: Align
  • 不对齐 DontAlign
    1someLongFunction(argument1,
    2    argument2);
  • 对齐 Align
    1someLongFunction(argument1,
    2                 argument2);

当块较短时, 是否允许写在单行

1AllowShortBlocksOnASingleLine: false
  • 条件语句的执行部分为空, 或只有一行语句时, 可认为语句较短;为false则如下输出
    1while (true)
    2{
    3}
    4while (true)
    5{
    6  continue;
    7}

当If语句较短时, 是否允许写在单行

1AllowShortIfStatementsOnASingleLine: true
1if (true) return;

当函数语句较短时, 是否允许写在单行

-
Inline 若函数体为空, 允许;若函数在类内定义, 允许
InlineOnly 只允许一种情况:函数在类内定义
Empty 只允许一种情况:函数体为空
1AllowShortFunctionsOnASingleLine: Inline

指针和引用的对齐方式

1PointerAlignment: Right
  • Right
    1int *a;
  • Left
    1int* a;

Git仓库同步

.gitignore

虚幻引擎提供模板

告诉Git, 同步时忽略的文件和文件夹


命名约定

虚幻编辑器

虚幻引擎命名规范参考

虚幻编辑器
材质 Material M_
材质实例 Material Instance MI_
基于C++的蓝图类 Blueprint BP_
动画蓝图 Animation Blueprint ABP_
混合空间(1D) Blend Space BS_
动画剪辑 Animation Montage AM_