你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

你知道代码对齐该使用Tab、空格、还是双管齐下呢?

[复制链接]
gaosmile 发布时间:2020-7-12 19:18
STM32CubeMX生成代码使用2个空格对齐,有办法让代码编变成4个空格吗?
如果代码对齐不规范,代码看着就很凌乱,比如:
微信图片_20200712191331.png
如果你看到类似以上代码,特别是前同事丢下的烂摊子,你内心可能会出现十万只草泥马?
一、关于代码对齐
代码对齐主要就是Tab、空格,还有就是二者混合,在Keil 和 IAR中设置对齐方式比较简单:
Keil:Edit -> Configuration -> Editor
微信图片_20200712191335.png
IAR:Tools -> Options -> Editor
微信图片_20200712191339.png
Tab和空格的区别
Tab和空格其实只是两个不同的符号,但在编程对齐中的意义却大不一样。一个Tab可以占空个格的位置,但一个空格就只有一个空格的位置。
在Keil开发环境中可以显示出Tab和空格符,不妨看一下在Tab和空格交替编辑下,原本使用占2空格Tab符号,实际在4隔空Tab下看代码(和注释)就凌乱了。
微信图片_20200712191342.png
离谱的代码中就会看见使用占3个空格的Tab,以上截图举例都还好,没有使用占用3个空格的Tab。
代码前面的对齐都还好处理,很多工具都可以自动排版,IAR只要选中需要对齐的代码,Ctrl + T就可以了。Keil可以安装格式化插件AStyle即可轻松解决问题。
但代码后面的注释对齐就不是那么好处理了,如果使用Tab + 空格混合方式,更是容易混乱。
二、代码对齐究竟改用那哪种?
代码对齐的通常使用2空格,或4空格,或者Tab对齐,但通常不建议空格和 Tab 混合使用。
究竟用2空格、4空格、还是Tab对齐,这个需要看你项目实际情况,都可以的,就看你代码风格。
唯一一点就是不建议混合使用,使用Tab或者空格都可以用格式化工具转化。但如果你混合使用了,转化出来的代码,有可能是凌乱的。
三、关于Tab和空格的调查
有人针对 GitHub 上多种语言的热门项目(star 数量高的),分析了代码对齐使用Tab和空格,以及空几格的使用情况。
1.C语言 微信图片_20200712191346.jpg
A.32.08% 用 TabB.35.31% 用 4 个空格C.26.15% 用 2 个D.4.31% 用 3 个E.2.16% 用 8 个
2.C++
微信图片_20200712191351.jpg
A.20.56% 用 TabB.39.11% 用 4 个空格C.38.71% 用 2 个D.1.61% 用 3 个
3.Java
微信图片_20200712191354.jpg
A.11.6% 用 TabB.23.21% 用 2 个空格C.65.19% 用 4 个
4.JavaScript
微信图片_20200712191358.jpg
A.13.25% 用 TabB.59.94% 用 2 个空格C.26.81% 用 4 个
5.PHP
微信图片_20200712191413.jpg
A.28.68% 用 TabB.6.12% 用 2 个空格C.65.2% 用 4 个
6.Ruby
微信图片_20200712191417.jpg
A.0% 用 TabB.100% 用 2 个空格C.0% 用 4 个

收藏 评论0 发布时间:2020-7-12 19:18

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版