NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
# 风格选项 大括号风格选项定义要使用的大括号风格。所有选项默认为每个缩进4个空格,用空格缩进。默认情况下,所有风格都不会缩进命名空间。其他缩进在自定义风格描述中表示。所有选项都将展开单行的带有大括号的语句,并将语句放在独立一行。要更改这一点,可以使用格式化选项部分中描述的选项 **keep-one-line-blocks** 或者 **keep-one-line-statements** 语句。 [TOC] ## 默认风格 如果不需要大括号样式,将使用默认的大括号样式。开头的大括号没有改变,结尾的大括号将从前一行被打断。有一些例外情况。 ## Allman 风格 **--style=allman** 或 **--style=bsd** 或 **--style=break** 或 **-A1** ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## Java 风格 **--style=java** 或 **--style=attach** 或 **-A2** ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## K&R 风格 **--style=kr** 或 **--style=k&r** 或 **--style=k/r** 或 **-A3** 在命名空间、类和函数定义中大括号的开始和结束都是独占一行。大括号连接到函数中的所有其他内容之后,包括数组、结构、枚举和语句。 使用k&r选项可能会由于&引起问题。这可以通过将k&r括在引号中(例如: **‑‑style=“k&r”** )来解决,或者通过使用 **‑‑style=kr** 或 **‑‑style=k/r** 来解决。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## Stroustrup 风格 **--style=stroustrup** 或 **-A4** Stroustrup 风格使用linux大括号,但是在关闭大括号的时候,另起一行(例如:**‑‑break‑closing‑headers** )。只有函数定义的大括号采用独占一行的方式。开头大括号连接到函数中的所有其他内容之后,包括命名空间、类、数组、结构、枚举和语句。这种样式经常与“ **attach‑closing‑while** ”、带标签的缩进和5个空格的缩进一起使用。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## Whitesmith 风格 **--style=whitesmith** 或 **-A5** Whitesmith 风格的大括号开头和结尾都独占一行,并且带有缩进格式。Switch代码块和类代码块都是缩进的,以防止与下面的case语句和c++类修饰符(公共、私有、受保护)进行“悬挂式缩进”。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## VTK 风格 **--style=vtk** 或 **-A15** VTK 风格除了类、数组、结构、枚举和函数定义的开头大括号外,其他情况的大括号开头和结尾都独占一行,并且带有缩进格式。Switch 代码块是缩进的,以防止与case语句有“悬挂式缩进”。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## Ratliff 风格 **--style=ratliff** 或** --style=banner** 或 **-A6** Ratliff 样式使用附加的、缩进的大括号。Switch代码块和类代码块都是缩进的,以防止与下面的case语句和c++类修饰符(公共、私有、受保护)进行“悬挂式缩进”。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## GNU 风格 **--style=gnu** 或 **-A7** GNU样式使用换行大括号。额外的缩进只添加到函数中的代码块中。整个代码块是缩进的,不仅仅是大括号。这种样式通常与缩进2个空格一起使用。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ``` ## Linux 风格 **--style=linux** 或 **--style=knf** 或 **-A8** Linux 风格的大括号起始符从名称空间、类和函数定义之后换行。大括号结束符连接到函数中的所有其他内容之后,包括数组、结构、枚举和语句。最小条件缩进是1 / 2缩进。如果您想要一个不同的最小条件缩进,那么使用K&R风格。这种样式最适合大的缩进。它经常与缩进8个空格一起使用。 也称为 Kernel Normal Form (KNF) 风格,这是 Linux BSD 内核中使用的样式。 ``` int Foo(bool isBar) { if (isFoo) { bar(); return 1; } else return 0; } ``` ## Horstmann 风格 **--style=horstmann** 或 **--style=run-in** 或 **-A9** Horstmann 风格使用换行大括号和插入语句。Switch 语句被缩进以允许进入到打开开关块。这种风格通常与缩进3个空格一起使用。 ``` int Foo(bool isBar) { if (isBar) { bar(); return 1; } else return 0; } ```