0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于怎么代码对齐的话题

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-20 14:00 次阅读

写在前面 Ⅰ

写作本文的想法来源于:最近移植以前工程师代码,打开工程一看,代码“凌乱”了······

原因在于代码对齐的方式“错综复杂”····

你们代码对齐的方式是Tab?还是空格? 使用空格又是几个空格?

关于代码对齐 Ⅱ

代码对齐主要牵涉到的就是使用Tab还是空格,以及空几格对齐。下面简单讲述一下相关的知识。

1.Tab和空格的配置

Keil:Edit -> Configuration -> Editor

IAR:Tools -> Options -> Editor

2.Tab和空格的区别

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

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

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

代码前面的对齐都还好处理,很多工具都可以自动排版,像IAR,只要选中需要对齐的代码,Ctrl + T就可以了。但代码后面的注释对齐就不是那么好处理了,如果使用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 个

总结 Ⅳ

关于代码对齐,代码编辑器既然支持Tab,也支持使用空格,所以个人觉得两种方式都可以,只看个人习惯使用那一个了。

代码对齐其实很好处理,选择可以自动对齐的工具对齐就OK了,但在代码后面的注释就不是那么容易对齐了(特别在Tab和空格混用情况下),我个人习惯在代码后面把注释也对齐,所以基本不用Tab符。

个人建议:对齐使用空格符,占2空格或4空格(常用)。其优势:1.方便跨平台使用; 2.对齐注释。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165316
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66798
  • 代码编辑器
    +关注

    关注

    0

    文章

    14

    浏览量

    5991
收藏 人收藏

    评论

    相关推荐

    聊聊一个关于TIMER事件触发中断的响应话题

    情况是这样的,现在使用STM32G4系列的TIM8,工作在中心对齐计数,单脉冲PWM模式,使用内部系统时钟做时钟源,计数时不做分频,即PSC=0。CH1做PWM输出。
    的头像 发表于 04-28 09:44 49次阅读
    聊聊一个<b class='flag-5'>关于</b>TIMER事件触发中断的响应<b class='flag-5'>话题</b>

    关于MOS管电路工作原理的讲解

    MOS管的话题虽说是老生常谈,但这份资料几年前就有人给我分享过,这是网上评价非常高的一篇关于MOS管电路工作原理的讲解,从管脚的识别,到极性的分辨,再到常用功能,应用电路等等
    发表于 04-22 12:26 52次阅读
    <b class='flag-5'>关于</b>MOS管电路工作原理的讲解

    计数器的位如何与SRC字段的42-32位对齐

    也是恒定的。 这是正确的吗? 我知道 SRC 在一些重要性更高的位中包含帧计数器,但这似乎相当简单,因为它只计算通过 FX3 的完整帧数。 关于计数器,我唯一的问题是我的计数器的位如何与 SRC 字段的 42-32 位对齐
    发表于 02-27 08:30

    keil arm工程中结构体1字节对齐如何实现

    在Keil Arm工程中,结构体的对齐方式可以通过使用特定的编译器指令或者关键字来实现。结构体的对齐方式会直接影响结构体变量在内存中的布局和对齐边界,从而对程序的性能和存储空间占用产生影响。 结构
    的头像 发表于 01-05 14:40 1173次阅读

    从人生、历史到单片机的话题讨论

    我们来看单片机 的例子,读者可能会担心单片机(又称MCU,或微控制器) 过于专业而无法理解。完全没必要!在这里我们仅借它谈论一下有关时间的话题,顺带提一下单片机系统的概念。
    的头像 发表于 12-05 10:35 289次阅读
    从人生、历史到单片机<b class='flag-5'>的话题</b>讨论

    AD9516-1能否做到不同芯片间的输出对齐呢?

    不同芯片间的输出对齐呢?如果能,该怎么做?如果不能的话,就没必要继续使用这个芯片了。 感谢感谢!如有知晓的,还请告知。万分感谢
    发表于 12-05 08:15

    话题通信接口的定义和运行效果

    ,将驱动相机并发布图像话题,此时的话题数据使用的是ROS中标准定义的Image图像消息; 第二个节点,会运行视觉识别功能,识别目标的位置,这个位置我们希望封装成话题消息,发布出去,谁需要使用谁就来订阅; 第三个节点,订阅位
    的头像 发表于 12-01 15:32 184次阅读
    <b class='flag-5'>话题</b>通信接口的定义和运行效果

    神秘又有趣的话题——芯片引脚顺序!

    亲爱的“芯”朋友,你们有没有发现,每颗芯片上都布满了密密麻麻的引脚,犹如一座迷宫,让人无从下手?今天,我们一起来揭开这个迷宫的神秘面纱,探索一下这个既神秘又有趣的话题——芯片引脚顺序!芯片,这个看似
    的头像 发表于 11-28 09:33 5539次阅读
    神秘又有趣<b class='flag-5'>的话题</b>——芯片引脚顺序!

    什么是结构体的字节对齐现象

    什么是结构体的字节对齐现象 程序员,咱都用代码说话,先上 code: (说明:以下代码均在 ARM 平台上,使用 Keil 进行编译测试) # define offset_of (TYPE
    的头像 发表于 11-20 15:55 304次阅读
    什么是结构体的字节<b class='flag-5'>对齐</b>现象

    一个地址未对齐引起的HardFault异常

    一个地址未对齐引起的 HardFault 异常
    的头像 发表于 09-18 10:57 438次阅读
    一个地址未<b class='flag-5'>对齐</b>引起的HardFault异常

    用户代码移植到STM32芯片时发生非对齐错误怎么办

    为什么基于Cortex-M3/M4的STM32芯片组织的用户代码移植到基于Cortex-M0/M0+的STM32芯片时为何可能会发生非对齐错误? 这是因为基于Cortex-M3/M4的STM32芯片
    的头像 发表于 09-09 15:48 1030次阅读
    用户<b class='flag-5'>代码</b>移植到STM32芯片时发生非<b class='flag-5'>对齐</b>错误怎么办

    关于RT_ALIGN_DOWN字节对齐问题

    我在rtdef.h中看到了如下字节对齐的宏定义。 #define RT_ALIGN(size, align)(((size) + (align) - 1) & ~((align
    发表于 08-20 11:43

    C语言结构体对齐介绍

    大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是C语言结构体对齐介绍,希望能对你有所帮助
    发表于 07-11 11:50 611次阅读
    C语言结构体<b class='flag-5'>对齐</b>介绍

    RISC-V未对齐导致问题案例

    本文介绍未对齐导致问题案例
    的头像 发表于 06-08 10:04 1056次阅读
    RISC-V未<b class='flag-5'>对齐</b>导致问题案例

    为什么要结构体对齐?为什么结构体对齐那么重要?

    C语言结构体对齐问题,是面试必备问题。我参与招聘技术面试的时候,也喜欢问这个技术点。
    的头像 发表于 05-26 14:10 669次阅读
    为什么要结构体<b class='flag-5'>对齐</b>?为什么结构体<b class='flag-5'>对齐</b>那么重要?