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
    +关注

    关注

    69

    文章

    1224

    浏览量

    171778
  • 代码
    +关注

    关注

    30

    文章

    4940

    浏览量

    73118
  • 代码编辑器
    +关注

    关注

    0

    文章

    16

    浏览量

    6165
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    协作机器人企业加速布局具身智能赛道

    如果说2024年最火的话题是AI大模型,那具身智能无疑是2025年最热门的话题之一。
    的头像 发表于 10-31 14:39 1294次阅读

    伺服电机编码器与转子磁极相位对齐方法

    永磁交流伺服电机的编码器相位为何要与转子磁极相位对齐 其唯一目的就是要达成矢量控制的目标,使 d 轴励磁分量和 q 轴出力分量解耦,令永磁交流伺服电机定子绕组产生的电磁场始终正交于转子永磁场,从而
    发表于 05-14 16:00

    Allegro Skill布局功能--器件丝印过孔对齐介绍与演示

    Allegro系统虽然提供了基本的元件对齐功能,但其适用范围较为有限。相比之下,Fanyskill 的“对齐”命令在操作体验和功能性上更具优势:其界面设计更加直观易用,并支持多种元素的对齐操作,包括
    发表于 05-14 08:59 2414次阅读
    Allegro Skill布局功能--器件丝印过孔<b class='flag-5'>对齐</b>介绍与演示

    PCB布局太乱? Altium Designer这个快捷键帮你一秒对齐全场

    在做PCB设计的时候,你是否也遇到过这种情况: 器件摆好但总感觉歪歪扭扭? 有些元件间距不一致,看着难受? 想对齐又一个个拖动,累得不行? 别急!今天教你一招  Altium Designer 里
    的头像 发表于 04-14 09:09 4258次阅读
    PCB布局太乱? Altium Designer这个快捷键帮你一秒<b class='flag-5'>对齐</b>全场

    图解边沿对齐,中心对齐PWM(可下载)

    在说边沿对齐,中心对齐前,我们先来段铺垫,PWM 又称脉冲宽度调制,我们通过调 节脉冲的占空比,我们可以控制电压的大小(比如我们满占空比时电压为 12V,我们可以通 过调节占空比让电压变为 7V
    发表于 03-31 15:15 1次下载

    Gerber文件中元件与焊接无法对齐

    同一块板子,转换成Gerber文件后,进行DFM分析时,元件无法与焊接对齐,导致全部贴片元件报错。如果直接采用AD源文件进行DFM分析则不会出现。
    发表于 02-19 09:02

    2025年电子行业值得关注的话题

    《What's Next》是安富利推出的全新数字读物,面向任何想要了解电子行业未来发展趋势的用户,安富利凭借在全球市场的深厚积淀与广泛影响力,为您精选最具前瞻性的议题,呈现精准的市场趋势、深刻的技术洞察。
    的头像 发表于 02-18 17:36 1253次阅读

    DLPC3479固件中是否写有关于DMD温度读取以及过热保护的内容,如果有的话温度读取和过热保护的逻辑是什么?

    你好 我想询问一下,DLPC3479固件中是否写有关于DMD温度读取以及过热保护的内容,如果有的话温度读取和过热保护的逻辑是什么。
    发表于 02-17 08:05

    DLPC3479固件中是否写有关于DMD温度读取以及过热保护的内容,如果有的话温度读取和过热保护的逻辑是什么?

    你好 我想询问一下,DLPC3479固件中是否写有关于DMD温度读取以及过热保护的内容,如果有的话温度读取和过热保护的逻辑是什么。
    发表于 02-17 07:35

    DeepSeek本地部署硬件配置推荐

    近日,关于 DeepSeek 的话题如同一场风暴,席卷了整个大语言模型领域。
    的头像 发表于 02-11 10:54 3908次阅读
    DeepSeek本地部署硬件配置推荐

    Orcad绘制原理图的元器件对齐方法

    在使用Orcad软件绘制原理图的时候,为了使原理图绘制的美观一些,有时候也希望像PCB设计一样,将所有的器件都进行对齐,这里我们给大家介绍下,原理图器件对齐的方法,方便大家在原理图设计的时候也可以将元器件进行对齐
    的头像 发表于 02-07 10:33 2549次阅读
    Orcad绘制原理图的元器件<b class='flag-5'>对齐</b>方法

    如何保证电平转换前后数据的相位对齐

    请教各位TI的技术人员一个问题 数据经过电平转换芯片是会产生延迟的 对于多通道电平转换芯片,由于延时的存在,不同通道间的延时是不一样的,那同相位的信号经过转换后不同通道的输出信号的相位可能不同,请问一下如何保证不同通道间的输出相位对齐? 谢谢
    发表于 02-05 06:16

    关于tlk2201数据对齐问题求解

    最近在调tlk2201,10bit位宽,tbi模式。目前的进度如下:如果发射端不发k28.5,那接收端syncen拉低,是无法对齐的。td0-td9随机对应rd0-rd9。这样不行,所以拉高
    发表于 01-23 06:26

    如果不使用EEPROM的话,使用bios,BIOS来写驱动填这个eeprom的值?

    1.关于1394 PHY,EEPROM烧录的f.w请问有sample吗? 是使用winrom 读出controller register map写入到1394 OHCI
    发表于 01-16 08:16

    求助,TLK10002低速侧两路数据对齐的疑问求解

    道而言,有时候1通道超前一个byte,有时候1通道落后1个byte,而有时1通道和0通道间又是对齐的。 问题来了,设计代码时候,本来是想通过最开始的TI同步码进行对齐的,比如发送同步码期间,1通道
    发表于 01-10 06:04