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

    文章

    1232

    浏览量

    173230
  • 代码
    +关注

    关注

    30

    文章

    4977

    浏览量

    74420
  • 代码编辑器
    +关注

    关注

    0

    文章

    16

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32N6 在 PSRAM 上运行代码的调试

    开发其产品过程中,使用了 STM32N657X0H3Q。客户的代码很大,不能放在SRAM 上运行,想放在 PSRAM 上去运行,并咨询如何在 STM32CubeIDE 上进行调试。2.2. 重现问题关于如何将用户代码放置在 PS
    发表于 04-15 16:02 0次下载

    理连接完成了,时序对齐还没开始

    、G-SYNC,一切参数如预期般呈现。 但深入使用后,你可能察觉: 游戏快速转向时画面有轻微“拖影感”; 视频剪辑时间轴拖动不够跟手; 音画偶尔错位,尤其在高帧率播放时更明显。 物理连接完成了,但信号的时序对齐,其实还没真正开始。 在高速数字显示时代,能否“亮屏”
    的头像 发表于 03-23 17:38 1038次阅读

    伺服电机正余弦编码器的相位对齐方式

    伺服电机正余弦编码器的相位对齐,本质上是为了让编码器反馈的位置信号与电机转子实际的磁极位置(电角度)建立精确的对应关系。这是实现矢量控制、确保电机平稳出力、避免飞车的基础。 根据操作原理和依赖的设备
    的头像 发表于 03-20 15:36 240次阅读
    伺服电机正余弦编码器的相位<b class='flag-5'>对齐</b>方式

    关于冷却的话题:手动控制 5V PWM 风扇,通过脚本控制,并通过内核自动控制

    冷却的话题已经多次讨论过。有些人认为风扇辅助冷却是必要的,其他人发誓被动冷却还有一些人认为这个话题被高估了,并认为没有必要冷却 VF2。关于这个问题的不同意见是正常的,也完全没问题。在这里,我只想
    发表于 03-18 07:13

    科技云报到:两会“中场时刻”:从技术突破到制度对齐

    科技云报到:两会“中场时刻”:从技术突破到制度对齐
    的头像 发表于 03-06 19:01 975次阅读

    AI代码之争忽略了什么

    人工智能的兴起让 COBOL 重新成为话题焦点,市场上也涌现出不少号称能转换遗留代码、破解现代化难题的工具。但关键在于厘清这究竟意味着什么,以及它不包含什么。代码转换是一回事,平台现代化则完全是另一码事。这两者并非同一概念,而横
    的头像 发表于 03-02 15:20 733次阅读

    C语言中一些令人震惊的结构介绍

    = a++ + b; 因此, 这段代码持行后a = 6, b = 7, c = 12。 如果你知道答案,或猜出正确答案,做得好。 如果你不知道答案,我也不把这个当作问题。我发现这个问题的最大好处是这是一个关于代码编写风
    发表于 12-23 08:15

    CW32操作FLASH地址对齐的要求

    地址边界对齐,即使用 16bit 位宽访问 FLASH 时的地址必须是偶地址,使用 32bit 位宽时的地址必须是 4 的倍数地址。 正确地址对齐代码示例: 8bit 读取: tempdata
    发表于 12-15 06:30

    IEEE 802.11af 与空白频谱无线技术的话题

    IEEE 802.11af 与空白频谱无线技术的话题
    的头像 发表于 12-14 15:12 1982次阅读

    通过优化代码来提高MCU运行效率

    。 内存访问优化 充分利用缓存:如果MCU有Cache,尽量保证代码和数据的局部性,即让相关的数据在内存中连续存放。 避免内存碎片:在动态内存分配受限的系统中,尽量使用静态分配。 对齐访问:保证数据在内
    发表于 11-12 08:21

    MDK uVision V5.36.00使用rt_packed进行字节对齐,但无效,为什么?

    各位RTT专家好: MDK uVision V5.36.00使用rt_packed进行字节对齐,但无效。
    发表于 09-24 06:37

    晶科能源Tiger Neo 3.0的问题解答(2)

    关于Tiger Neo 3.0,朋友们关心、询问的话题很多,昨天集中回答了大家提的的10个热点问题,有网友后台留言说自己的问题被选中,今天我们整理了第二集。这些问题和答案同步更新至官网。未来,我们将针对大家关心的问题,继续不定期更新,感谢大家对Tiger Neo 3.0
    的头像 发表于 08-20 14:09 779次阅读

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

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

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

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

    同样的代码在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?

    同样的代码在Nordic官方开发板上可以运行正常,但在自己板子上就跑不起来,如果你碰到了上述情况,建议按照如下步骤进行自检: 首先确认用户板元器件焊接良好,功能正常。如果你的板子有LED的话,你可以
    的头像 发表于 05-12 15:26 928次阅读
    同样的<b class='flag-5'>代码</b>在官方开发板上运行正常,在自己板子上就跑不起来,怎么办?