当前位置:首页 > > strongerHuang
[导读]关注、星标公众号,不错过精彩内容 素材来源:网络 编辑整理:strongerHuang 看到我技术交流群里在讨论代码对齐的话题:STM32CubeMX生成代码使用2个空格对齐,有办法让代码编变成4个空格吗? 如果代码对齐不规范,代码看着就很凌乱,比如: 如果你看到类似以

关注、星标公众号,不错过精彩内容

素材来源:网络
编辑整理:strongerHuang


看到我技术交流群里在讨论代码对齐的话题:STM32CubeMX生成代码使用2个空格对齐,有办法让代码编变成4个空格吗?


如果代码对齐不规范,代码看着就很凌乱,比如:


如果你看到类似以上代码,特别是前同事丢下的烂摊子,你内心可能会出现十万只草泥马?


一、关于代码对齐

代码对齐主要就是Tab、空格,还有就是二者混合,在Keil 和 IAR中设置对齐方式比较简单:


Keil:

Edit -> Configuration -> Editor


IAR:

Tools -> Options -> Editor



(关于 Keil 和 IAR更多的使用教程,可以后台回复Keil / IAR查看)


Tab和空格的区别

Tab和空格其实只是两个不同的符号,但在编程对齐中的意义却大不一样。一个Tab可以占空个格的位置,但一个空格就只有一个空格的位置。


在Keil开发环境中可以显示出Tab和空格符,不妨看一下在Tab和空格交替编辑下,原本使用占2空格Tab符号,实际在4隔空Tab下看代码(和注释)就凌乱了。



离谱的代码中就会看见使用占3个空格的Tab,以上截图举例都还好,没有使用占用3个空格的Tab。


代码前面的对齐都还好处理,很多工具都可以自动排版,IAR只要选中需要对齐的代码,Ctrl + T就可以了。Keil可以安装格式化插件AStyle即可轻松解决问题。


但代码后面的注释对齐就不是那么好处理了,如果使用Tab + 空格混合方式,更是容易混乱。


二、代码对齐究竟改用那哪种?

代码对齐的通常使用2空格,或4空格,或者Tab对齐,但通常不建议空格和 Tab 混合使用。


究竟用2空格、4空格、还是Tab对齐,这个需要看你项目实际情况,都可以的,就看你代码风格。


唯一一点就是不建议混合使用,使用Tab或者空格都可以用格式化工具转化。但如果你混合使用了,转化出来的代码,有可能是凌乱的。


三、关于Tab和空格的调查

有人针对 GitHub 上多种语言的热门项目(star 数量高的),分析了代码对齐使用Tab和空格,以及空几格的使用情况。



1.C语言


A.32.08% 用 Tab

B.35.31% 用 4 个空格

C.26.15% 用 2 个

D.4.31% 用 3 个

E.2.16% 用 8 个

 

2.C++


A.20.56% 用 Tab

B.39.11% 用 4 个空格

C.38.71% 用 2 个

D.1.61% 用 3 个

 

3.Java


A.11.6% 用 Tab

B.23.21% 用 2 个空格

C.65.19% 用 4 个

 

4.JavaScript


A.13.25% 用 Tab

B.59.94% 用 2 个空格

C.26.81% 用 4 个

 

5.PHP


A.28.68% 用 Tab

B.6.12% 用 2 个空格

C.65.2% 用 4 个

 

6.Ruby


A.0% 用 Tab

B.100% 用 2 个空格

C.0% 用 4 个


推荐阅读:
电感这些细节,你知道吗?
电器上的这些符号有什么特别含义?
手把手教你用铁丝做Arduino UNO板

关注 微信公众号『strongerHuang』,后台回复“1024”查看更多内容,回复“加群”按规则加入技术交流群。


长按前往图中包含的公众号关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

纽约2026年8月18日 /美通社/ -- 美国万通证券作为美国金融业监管局及SIPC成员,总部位于纽约、提供全牌照服务的投资银行和证券经纪及交易商,今日宣布为其客户YXT.COM GROUP HOLDING Ltd(纳...

关键字: COM GROUP HOLDING 代码

北京2026年8月13日 /美通社/ -- 在 AI 重塑软件工程范式的当下,企业数智化转型正步入深水区。近日,全球领先的AI工厂全栈服务商软通动力宣布,全面引入阿里云全栈 Agentic 智能编程平台 Qoder,成功...

关键字: 阿里云 全栈 AI 代码

纽约2026年8月8日 /美通社/ -- 美国万通证券作为美国金融业监管局及SIPC成员,总部位于纽约、提供全牌照服务的投资银行和证券经纪及交易商,今日宣布为其客户YXT.COM GROUP HOLDING Ltd(纳斯...

关键字: COM GROUP HOLDING 代码

北京2026年8月6日 /美通社/ -- 伴随AI Coding等长流程场景的渗透,单一Agent已难以满足企业复杂的业务需求,由大量Agent持续并发运行、共同完成复杂业务的"多智能体群智协同&qu...

关键字: AI 智能体 测试 代码

科罗拉多州布鲁姆菲尔德2026年7月29日 /美通社/ -- Quantinuum Inc.(纳斯达克股票代码:QNT)(简称“Quantinuum”)今日宣布,将于2026...

关键字: ANTI 量子计算 CCD 代码

美国北卡罗来纳州夏洛特2026年7月24日 /美通社/ -- 霍尼韦尔科技(纳斯达克代码:HON)近日公布了2026年第二季度业绩。合并财报包含霍尼韦尔航空航天(纳斯达克代码:HONA)的经营数据。霍尼韦尔航空航天已于2...

关键字: 霍尼韦尔 航天 代码 自动化

在软件工程数十年的迭代历程中,无数开发者都曾遭遇过“上帝类”带来的噩梦:一个数千行的类里同时混杂了数据查询、格式转换、日志打印、异常处理等十多种完全不相关的逻辑,每次修改其中一个小功能,都要通读整个类的所有代码,稍有不慎...

关键字: 程序 代码

AI编程助手已经彻底改变了一名开发者一个上午能完成的工作量。过去需要几个小时才能理清思路、写出草稿的代码,现在几秒钟就能生成。对于探索性工作和快速原型开发来说,这种效率提升是实实在在的。

关键字: AI编程助手 代码 嵌入式

结合英矽智能的Pharma.AI平台与保瑞在全球范围内的研发、生产、质量控制及商业化能力,探索创新的药物研发模式 上海和台北2026年7月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物科技公司英矽...

关键字: 人工智能 智能驱动 ARMA 代码

美国旧金山和中国苏州2026年6月30日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售肿瘤、自身免疫、代谢及心血管、眼科等重大疾病领域创新药物的生物制药公司,今日和礼来...

关键字: CD BSP 代码 OV
关闭