clang-format

Clang-format 格式化代码

# ubuntu
sudo apt-get install clang-format
# vscode 插件
搜索 Clang-Format 安装
# 打开设置, 扩展->C/C++/Formatting
粘贴/保存时自动格式化# 导出配置
clang-format  -style=llvm -dump-config > ~/xx/xx/.clang-format

vi ~/.clang-format

---
# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto
Language:        Cpp
# 访问说明符(public、private等)的偏移
AccessModifierOffset: -2
# 连续赋值时,等号对齐
AlignConsecutiveAssignments: true
# define 换行时反斜杠位置:左对齐
AlignEscapedNewlines: Left
# 连续代码的尾部注释对齐
AlignTrailingComments: true
# 允许短代码块放在同一行 if 1 { return; }
AllowShortBlocksOnASingleLine: true
# 允许短的case标签放在同一行
AllowShortCaseLabelsOnASingleLine: true
# 允许短的函数放在同一行
AllowShortFunctionsOnASingleLine: All
# 允许短的if语句保持在同一行
AllowShortIfStatementsOnASingleLine: true
# 允许短的循环保持在同一行
AllowShortLoopsOnASingleLine: true
# 总是在返回类型后换行
AlwaysBreakAfterReturnType: None
# 总是在多行string字面量前换行
AlwaysBreakBeforeMultilineStrings: false
# 总是在template声明后换行
AlwaysBreakTemplateDeclarations: MultiLine
# false表示函数实参要么都在同一行,要么都各自一行
BinPackArguments: false
# false表示所有形参要么都在同一行,要么都各自一行
BinPackParameters: false
# 在大括号前换行: Attach(始终将大括号附加到周围的上下文), Linux(除函数、命名空间和类定义,与Attach类似), 
#   Mozilla(除枚举、函数、记录定义,与Attach类似), Stroustrup(除函数定义、catch、else,与Attach类似), 
#   Allman(总是在大括号前换行), GNU(总是在大括号前换行,并对于控制语句的大括号增加额外的缩进), WebKit(在函数前换行), Custom
#   注:这里认为语句块也属于函数
BreakBeforeBraces: Custom
# 大括号换行,只有当BreakBeforeBraces设置为Custom时才有效
BraceWrapping:# class定义后面   AfterClass:      false# 控制语句后面AfterControlStatement: false# enum定义后面AfterEnum:       false# 函数定义后面(OC 无效) AfterFunction:   false# 命名空间定义后面AfterNamespace:  false# OC 定义后面AfterObjCDeclaration:  false# struct定义后面AfterStruct:     false# union定义后面AfterUnion:      false# entern定义后面AfterExternBlock: false# catch之前BeforeCatch:     false# else之前BeforeElse:      false# 缩进大括号IndentBraces:    false#false 时,空方法体 {} 放在一行SplitEmptyFunction: false#false 时,空记录(例如,类,结构或联合){} 放在一行SplitEmptyRecord: false# false 且 AfterNamespace == true 时 空命名空间体可放到一行: {}SplitEmptyNamespace: false
# 在二元运算符前换行: None(在操作符后换行), NonAssignment(在非赋值的操作符前换行), All(在操作符前换行)  
BreakBeforeBinaryOperators: All
# 三元运算符 true 符号前换行 false 符号后换行
BreakBeforeTernaryOperators: true
# 继承时 BeforeColon ‘:’前换行
BreakInheritanceList: BeforeColon
# 在构造函数的初始化列表的逗号前换行
BreakConstructorInitializers: BeforeComma
# 在Java文件中的字段上的每个注释之后中断。
BreakAfterJavaFieldAnnotations: false
# Allow breaking string literals when formatting.
BreakStringLiterals: true
# 每行字符的限制,0表示没有限制
ColumnLimit:     120
# 描述具有特殊意义的注释的正则表达式,它不应该被分割为多行或以其它方式改变
CommentPragmas:  '^ IWYU pragma:'
# true,连续的名称空间声明将位于同一行。如果为false,则在新行上声明每个名称空间。
CompactNamespaces: false
# 构造函数的初始化列表要么都在同一行,要么都各自一行
ConstructorInitializerAllOnOneLineOrOnePerLine: false
# 构造函数的初始化列表的缩进宽度
ConstructorInitializerIndentWidth: 2
# 延续的行的缩进宽度
ContinuationIndentWidth: 2
# 去除C++11的列表初始化的大括号{后和}前的空格
Cpp11BracedListStyle: false
# 继承最常用的指针和引用的对齐方式
DerivePointerAlignment: false
# 关闭格式化
DisableFormat:   false
# 自动检测函数的调用和定义是否被格式为每行一个参数(Experimental)
ExperimentalAutoDetectBinPacking: false
# true 自动检测补全命名空间尾部的大括号
FixNamespaceComments: false
# 需要被解读为foreach循环而不是函数调用的宏
ForEachMacros:   - foreach- Q_FOREACH- BOOST_FOREACH
# #include 分组排序方式 Preserve(按组排序) Merge(合并成一组排序)Regroup(按 IncludeCategories 重新分组排序)
IncludeBlocks:   Preserve
IncludeCategories: - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'Priority:        2- Regex:           '^(<|"(gtest|gmock|isl|json)/)'Priority:        3- Regex:           '.*'Priority:        1
# Specify a regular expression of suffixes that are allowed in the file-to-main-include mapping.
IncludeIsMainRegex: '(Test)?$'
# case 是否缩进一级
IndentCaseLabels: true
# 预处理代码缩进样式。None(不缩进)AfterHash(缩进)
IndentPPDirectives: None
# 缩进宽度
IndentWidth:     2
# 函数在返回类型后换行,是否缩进函数名
IndentWrappedFunctionNames: false
# JS 引号样式 Leave("",'') Single("") Double("")
JavaScriptQuotes: Leave
# JS import 是否需要换行
JavaScriptWrapImports: true
# 保留在块开始处的空行(OC 没用)
KeepEmptyLinesAtTheStartOfBlocks: true
# 开始一个块的宏的正则表达式
MacroBlockBegin: ''
# 结束一个块的宏的正则表达式
MacroBlockEnd:   ''
# 连续最大空行数
MaxEmptyLinesToKeep: 1
# 命名空间的缩进: None, Inner(缩进嵌套的命名空间中的内容), All
NamespaceIndentation: Inner
# OC 协议根据 ColumnLimit 长度 换行
ObjCBinPackProtocolList: Auto
# 使用 OC block 函数实现内部缩进宽度
ObjCBlockIndentWidth: 2
# 在ObjC的@property后添加一个空格
ObjCSpaceAfterProperty: true
# 在OC的protocol列表前添加一个空格
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
# 指针和引用的对齐: Left(int* a;), Right(int *a;), Middle(int * a;)
PointerAlignment: Right
# 允许重新排版注释
ReflowComments:  true
# 允许排序#include,首字母排序
SortIncludes:    true
# true using 自动排序
SortUsingDeclarations: false
# 在C风格类型转换后添加空格
SpaceAfterCStyleCast: false
# template 关键字后添加空格
SpaceAfterTemplateKeyword: true
# false 移除 = +=  两侧的空格
SpaceBeforeAssignmentOperators: true
# 初始化 c++ 11 对象的前面空格
SpaceBeforeCpp11BracedList: true
# 构造函数:前加空格
SpaceBeforeCtorInitializerColon: true
# 继承的:前面加空格
SpaceBeforeInheritanceColon: true
# 开圆括号之前添加一个空格: Never, ControlStatements, Always
SpaceBeforeParens: ControlStatements
# false 清除 for 循环:前面的空格 for (auto v : values) {} 
SpaceBeforeRangeBasedForLoopColon: true
# 在空的圆括号中添加空格
SpaceInEmptyParentheses: false
# 在尾随的评论前添加的空格数(只适用于//)
SpacesBeforeTrailingComments: 1
# 在尖括号内部前后添加空格 < int >
SpacesInAngles:  false
# 快捷数组 内部加空格 [ 1, 2, 3 ]; :前加空格 f({a : 1, b : 2, c : 3});
SpacesInContainerLiterals: false
# 在C风格类型转换的括号中添加空格
SpacesInCStyleCastParentheses: false
# 在圆括号的(后和)前添加空格
SpacesInParentheses: false
# 在方括号的[后和]前添加空格,lamda表达式和未指明大小的数组的声明不受影响
SpacesInSquareBrackets: false
# 标准: Cpp03, Cpp11, Auto
Standard:        Cpp11
# tab宽度
TabWidth:        2
UseTab:          Never

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

transbigdata笔记:清理研究区域内的轨迹漂移

1 方法介绍 transbigdata 考虑了三种轨迹漂移&#xff0c;需要被清理 速度阈值&#xff1a;如果当前轨迹数据点与之前&#xff08;和后续&#xff09;轨迹数据点之间的速度超过阈值&#xff0c;则视为漂移。 距离阈值&#xff1a;如果当前轨迹数据点与上一个&#xff08;和后…

统计学-R语言-6.2

文章目录 前言总体均值的区间估计两个总体均值之差的估计两个总体均值之差的估计&#xff08;独立大样本的估计&#xff09;两个总体均值之差的估计&#xff08;独立小样本的估计&#xff09;两个总体均值之差的估计&#xff08;配对样本的估计&#xff09; 总体比例的区间估计…

python数字图像处理基础(九)——特征匹配

目录 蛮力匹配&#xff08;ORB匹配&#xff09;RANSAC算法全景图像拼接 蛮力匹配&#xff08;ORB匹配&#xff09; Brute-Force匹配非常简单&#xff0c;首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行&#xff08;描述符&#xff09;距离测试&#x…

前端-基础 表格标签 总结

目录 表格的相关标签 &#xff1a; 表格的相关属性 合并单元格 &#xff1a; 表格的相关标签 &#xff1a; 表格标签 - <table> 行标签 - <tr> 单元格标签 - <td> 表头单元格标签 - <th> 表格结构标签 表头区域标签 - < thead >…

MySQL 查询数据

今天介绍一下 MySQL 数据库使用 SELECT 语句来查询数据。 语法 首先&#xff0c;介绍一下语法。以下为在 MySQL 数据库中查询数据通用的 SELECT 语法&#xff1a; SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LI…

【算法】递归

递归 递归初始递归&#xff1a;数列求和递归的应用&#xff1a;任意进制转换递归深度限制递归可视化&#xff1a;分形树递归可视化&#xff1a;谢尔宾斯基Sierpinski三角形递归的应用&#xff1a;汉诺塔递归的应用&#xff1a;探索迷宫 分治策略和递归优化问题兑换最少个数硬币…

k8s和knative的区别与联系

目录 什么是k8s 什么事knative 区别与联系 联系 区别 什么是k8s k8s是容器编排引擎和管理器。 其主要功能特性有&#xff1a;服务发现&#xff08;提供ip&#xff09;和负载均衡&#xff0c;存储编排&#xff0c;自动推出和回滚&#xff0c;自我修复&#xff0c;自动装箱…

交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。

//法一&#xff08;正常方法&#xff09; int main() {int a 3;int b 5;int tmp 0;//临时变量printf("before:a%d b%d\n", a, b);tmp a;a b;b tmp;printf("after:a%d b%d\n", a, b);return 0; } //法二&#xff08;加减法&#xff09; 有缺陷 aab超出…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…

大游戏并发使用什么阿里云服务器配置?

阿里云服务器配置如何选择&#xff1f;用于高性能计算或大游戏并发&#xff0c;可选择企业级第七代云服务器计算型g7、ECS计算型c7、内存型r7独享型云服务器&#xff0c;CPU采用第三代Intel Xeon可扩展处理器&#xff08;Ice Lake&#xff09;&#xff0c;基频2.7 GHz&#xff…

Java开发的审批流系统,前端使用vue,支持常态化工作审批流程

一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;快速开发平台&#xff0c;可插拔工作流服务。 二、项目介绍 本项目拥有用户管理&#xff0c;部门管理&#xff0c;代码生成&#xff0c;系统监管&#xff0c;报表&#xff0c;大屏展示&#xff0c;业…

代码随想录算法训练营第二十四天 | 回溯算法终于开始了!77. 组合

回溯算法终于开始了&#xff01; 题目链接&#xff1a;leetcode 77. 组合 文章讲解&#xff1a;代码随想录 77. 组合讲解 视频讲解&#xff1a;带你学透回溯算法-组合问题&#xff08;对应力扣题目&#xff1a;77.组合&#xff09; 思路和解法 题目&#xff1a; 给定两个整…

贝塞尔曲线(Bezier Curve)原理、公式推导及matlab代码实现

目录 参考链接 定义 直观理解 公式推导 一次贝塞尔曲线&#xff08;线性公式&#xff09; 二次贝塞尔曲线&#xff08;二次方公式&#xff09; 三次贝塞尔曲线&#xff08;三次方公式&#xff09; n次贝塞尔曲线&#xff08;一般参数公式&#xff09; 代码实现 参考链接…

C语言入门第二节-概述C语言

C语言入门第二节-概述C语言 一.C语言的程序结构 1.当前最新的C语言标准为c11&#xff0c;在他之前的C语言标准为c99&#xff1b; 2.结构主要包括&#xff1a;1.预处理指令&#xff0c;2.函数&#xff0c;3,变量&#xff0c;4.语向和表达式&#xff0c;5.注释 #include<std…

基于局部信息提取的人脸标志检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 人脸检测 4.2 局部区域选择 4.3 特征提取 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .........................................…

java面试题(23):Spring Bean如何保证并发安全

1 问题分析 我们知道默认情况下&#xff0c;Spring中的Bean是单例的&#xff0c;所以在多线程并发访问的时候&#xff0c;有可能会出现线程安全问题。 2 解决方案 有几个方面的解决思路&#xff1a; 我们可以设置Bean的作用域设置为原型&#xff08;prototype&#xff09;&a…

一篇文章带你彻底了解flex布局

哈喽&#xff0c;大家好呀&#xff0c;我是前端理想哥&#xff0c;今天我们来聊聊 flex 布局。 好&#xff0c;主角登场。 CSS 弹性盒子模型( Flexible Box 或者 Flexbox ) 先来看看它的定义&#xff1a;弹性布局是指通过调整其内元素的宽高&#xff0c;从而在任何显示设备上…

Qt实现在5种情况下快速求最值

1. 求最大值 const T &qMax(const T &a, const T &b) 举例&#xff1a; float value1 20; float value2 30; float result qMax(value1, value2); qDebug() << "Result:" << result; 结果&#xff1a;Result: 30 2. 求最小值 const …

【02】mapbox js api加载arcgis切片服务

需求&#xff1a; 第三方的mapbox js api加载arcgis切片服务&#xff0c;同时叠加在mapbox自带底图上 效果图&#xff1a; 形如这种地址去加载&#xff1a; http://zjq2022.gis.com:8080/demo/loadmapbox.html arcgis切片服务参考链接思路&#xff1a;【01】mapbox js api加…