0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于怎么代碼對(duì)齊的話題

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-03-20 14:00 ? 次閱讀

寫(xiě)在前面 Ⅰ

寫(xiě)作本文的想法來(lái)源于:最近移植以前工程師代碼,打開(kāi)工程一看,代碼“凌亂”了······

原因在于代碼對(duì)齊的方式“錯(cuò)綜復(fù)雜”····

你們代碼對(duì)齊的方式是Tab?還是空格? 使用空格又是幾個(gè)空格?

關(guān)于代碼對(duì)齊 Ⅱ

代碼對(duì)齊主要牽涉到的就是使用Tab還是空格,以及空幾格對(duì)齊。下面簡(jiǎn)單講述一下相關(guān)的知識(shí)。

1.Tab和空格的配置

Keil:Edit -> Configuration -> Editor

IAR:Tools -> Options -> Editor

2.Tab和空格的區(qū)別

Tab和空格其實(shí)只是兩個(gè)不同的符號(hào),但在編程對(duì)齊中的意義卻大不一樣。一個(gè)Tab可以占空個(gè)格的位置,但一個(gè)空格就只有一個(gè)空格的位置。

在Keil開(kāi)發(fā)環(huán)境中可以顯示出Tab和空格符,不妨看一下在Tab和空格交替編輯下,原本使用占2空格Tab符號(hào),實(shí)際在4隔空Tab下看代碼(和注釋)就凌亂了。

離譜的代碼中就會(huì)看見(jiàn)使用占3個(gè)空格的Tab,以上截圖舉例都還好,沒(méi)有使用占用3個(gè)空格的Tab。

代碼前面的對(duì)齊都還好處理,很多工具都可以自動(dòng)排版,像IAR,只要選中需要對(duì)齊的代碼,Ctrl + T就可以了。但代碼后面的注釋對(duì)齊就不是那么好處理了,如果使用Tab + 空格混合方式,更是容易混亂。

關(guān)于Tab和空格的調(diào)查 Ⅲ

有人針對(duì) GitHub 上多種語(yǔ)言的熱門(mén)項(xiàng)目(star 數(shù)量高的),分析了代碼對(duì)齊使用Tab和空格,以及空幾格的使用情況。

1.C語(yǔ)言

A.32.08% 用 Tab

B.35.31% 用 4 個(gè)空格

C.26.15% 用 2 個(gè)

D.4.31% 用 3 個(gè)

E.2.16% 用 8 個(gè)

2.C++

A.20.56% 用 Tab

B.39.11% 用 4 個(gè)空格

C.38.71% 用 2 個(gè)

D.1.61% 用 3 個(gè)

3.Java

A.11.6% 用 Tab

B.23.21% 用 2 個(gè)空格

C.65.19% 用 4 個(gè)

4.JavaScript

A.13.25% 用 Tab

B.59.94% 用 2 個(gè)空格

C.26.81% 用 4 個(gè)

5.PHP

A.28.68% 用 Tab

B.6.12% 用 2 個(gè)空格

C.65.2% 用 4 個(gè)

6.Ruby

A.0% 用 Tab

B.100% 用 2 個(gè)空格

C.0% 用 4 個(gè)

總結(jié) Ⅳ

關(guān)于代碼對(duì)齊,代碼編輯器既然支持Tab,也支持使用空格,所以個(gè)人覺(jué)得兩種方式都可以,只看個(gè)人習(xí)慣使用那一個(gè)了。

代碼對(duì)齊其實(shí)很好處理,選擇可以自動(dòng)對(duì)齊的工具對(duì)齊就OK了,但在代碼后面的注釋就不是那么容易對(duì)齊了(特別在Tab和空格混用情況下),我個(gè)人習(xí)慣在代碼后面把注釋也對(duì)齊,所以基本不用Tab符。

個(gè)人建議:對(duì)齊使用空格符,占2空格或4空格(常用)。其優(yōu)勢(shì):1.方便跨平臺(tái)使用; 2.對(duì)齊注釋。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1214

    瀏覽量

    167060
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4809

    瀏覽量

    68823
  • 代碼編輯器
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    6041
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    KiCad的對(duì)齊工具不好用?

    “ ?不存在的。唯一的原因是您還沒(méi)有學(xué)會(huì)怎么用。 ? ” 對(duì)齊命令在哪里? KiCad的對(duì)齊命令(Align)藏得比較隱蔽,既不在菜單欄,也不在工具欄。右鍵的菜單中默認(rèn)也不存在。只有當(dāng)您 選中兩個(gè)或
    的頭像 發(fā)表于 12-04 18:15 ?211次閱讀
    KiCad的<b class='flag-5'>對(duì)齊</b>工具不好用?

    ARM嵌入式系統(tǒng)中內(nèi)存對(duì)齊的重要性

    做嵌入式系統(tǒng)軟件開(kāi)發(fā),經(jīng)常在代碼中看到各種各樣的對(duì)齊,很多時(shí)候我們都是知其然不知其所以然,知道要做好各種對(duì)齊,但是不明白為什么要對(duì)齊,不對(duì)齊
    的頭像 發(fā)表于 11-11 17:17 ?964次閱讀
    ARM嵌入式系統(tǒng)中內(nèi)存<b class='flag-5'>對(duì)齊</b>的重要性

    I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢?

    大家好,關(guān)于I2S格式,有兩個(gè)疑問(wèn)請(qǐng)教一下 我們知道I2S有左對(duì)齊,右對(duì)齊跟標(biāo)準(zhǔn)的I2S三種格式,那么這三種格式各有什么優(yōu)點(diǎn)呢? 而且對(duì)于標(biāo)準(zhǔn)的I2S格式,32FS傳輸16bit的數(shù)據(jù),48fs傳輸24bit的數(shù)據(jù),最低位會(huì)移
    發(fā)表于 10-21 08:23

    三相三電平逆變器的中心對(duì)齊SVPWM實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《三相三電平逆變器的中心對(duì)齊SVPWM實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:25 ?0次下載
    三相三電平逆變器的中心<b class='flag-5'>對(duì)齊</b>SVPWM實(shí)現(xiàn)

    OpenAI超級(jí)對(duì)齊團(tuán)隊(duì)解散

    近日,OpenAI的安全主管、“超級(jí)智能對(duì)齊團(tuán)隊(duì)”負(fù)責(zé)人Jan Leike宣布離職。據(jù)悉,Jan Leike與OpenAI高層在公司的核心優(yōu)先事項(xiàng)上存在長(zhǎng)期且難以調(diào)和的分歧。
    的頭像 發(fā)表于 05-20 10:16 ?467次閱讀

    鴻蒙ArkUI開(kāi)發(fā):【彈性布局(主軸&amp;交叉軸對(duì)齊方式)】

    通過(guò)justifyContent參數(shù)設(shè)置在主軸方向的對(duì)齊方式,和Row、Column的主軸對(duì)齊方式行為一樣
    的頭像 發(fā)表于 05-14 15:33 ?794次閱讀
    鴻蒙ArkUI開(kāi)發(fā):【彈性布局(主軸&amp;交叉軸<b class='flag-5'>對(duì)齊</b>方式)】

    HarmonyOS開(kāi)發(fā)ArkUI案例:【常用布局容器對(duì)齊方式】

    基于ArkTS擴(kuò)展的聲明式開(kāi)發(fā)范式,實(shí)現(xiàn)Flex、Column、Row和Stack四種常用布局容器對(duì)齊方式。
    的頭像 發(fā)表于 05-08 16:47 ?1668次閱讀
    HarmonyOS開(kāi)發(fā)ArkUI案例:【常用布局容器<b class='flag-5'>對(duì)齊</b>方式】

    聊聊TIMER事件觸發(fā)中斷的響應(yīng)話題

    情況是這樣的,現(xiàn)在使用STM32G4系列的TIM8,工作在中心對(duì)齊計(jì)數(shù),PWM單脈沖模式,使用內(nèi)部系統(tǒng)時(shí)鐘做時(shí)鐘源,計(jì)數(shù)時(shí)不做分頻,即PSC=0。CH2做PWM輸出。
    的頭像 發(fā)表于 05-06 16:07 ?907次閱讀
    聊聊TIMER事件觸發(fā)中斷的響應(yīng)<b class='flag-5'>話題</b>

    聊聊一個(gè)關(guān)于TIMER事件觸發(fā)中斷的響應(yīng)話題

    情況是這樣的,現(xiàn)在使用STM32G4系列的TIM8,工作在中心對(duì)齊計(jì)數(shù),單脈沖PWM模式,使用內(nèi)部系統(tǒng)時(shí)鐘做時(shí)鐘源,計(jì)數(shù)時(shí)不做分頻,即PSC=0。CH1做PWM輸出。
    的頭像 發(fā)表于 04-28 09:44 ?588次閱讀
    聊聊一個(gè)<b class='flag-5'>關(guān)于</b>TIMER事件觸發(fā)中斷的響應(yīng)<b class='flag-5'>話題</b>

    關(guān)于MOS管電路工作原理的講解

    MOS管的話題雖說(shuō)是老生常談,但這份資料幾年前就有人給我分享過(guò),這是網(wǎng)上評(píng)價(jià)非常高的一篇關(guān)于MOS管電路工作原理的講解,從管腳的識(shí)別,到極性的分辨,再到常用功能,應(yīng)用電路等等
    發(fā)表于 04-22 12:26 ?544次閱讀
    <b class='flag-5'>關(guān)于</b>MOS管電路工作原理的講解

    求助,關(guān)于STM32H7的Cache無(wú)效化操作32字節(jié)對(duì)齊問(wèn)題求解

    core_cm7.h更新到5.1.1版本后,發(fā)現(xiàn)該函數(shù)對(duì)dsize做了32字節(jié)對(duì)齊,但是op_addr地址32字節(jié)對(duì)齊卻注釋掉了?,圖片的這句話是不是說(shuō)SCB-&gt
    發(fā)表于 03-29 06:51

    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    有人通過(guò)公眾號(hào)微信留言,詢問(wèn)是否有關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼。同時(shí),個(gè)人也發(fā)現(xiàn),雖然STM32片內(nèi)的DMAMUX不是什么新模塊,似乎還是很多人并不太熟悉。這里借機(jī)聊聊這方面的內(nèi)容,重點(diǎn)演示相關(guān)功能的實(shí)現(xiàn),以供參考。
    的頭像 發(fā)表于 03-25 09:15 ?2514次閱讀
    <b class='flag-5'>關(guān)于</b>STM32 DMAMUX模塊具體的應(yīng)用示例<b class='flag-5'>代碼</b>

    是否可以直接通過(guò)cubemx枚舉多個(gè)虛擬串口,如果不行的話代碼需要怎么修改?

    是否可以直接通過(guò)cubemx枚舉多個(gè)虛擬串口,如果不行的話代碼需要怎么修改?
    發(fā)表于 03-25 08:05

    計(jì)數(shù)器的位如何與SRC字段的42-32位對(duì)齊?

    也是恒定的。 這是正確的嗎? 我知道 SRC 在一些重要性更高的位中包含幀計(jì)數(shù)器,但這似乎相當(dāng)簡(jiǎn)單,因?yàn)樗挥?jì)算通過(guò) FX3 的完整幀數(shù)。 關(guān)于計(jì)數(shù)器,我唯一的問(wèn)題是我的計(jì)數(shù)器的位如何與 SRC 字段的 42-32 位對(duì)齊?
    發(fā)表于 02-27 08:30

    請(qǐng)問(wèn)PWM波輸出方式中的邊沿對(duì)齊與中心對(duì)齊有什么區(qū)別呢?

    請(qǐng)問(wèn)PWM波輸出方式中的邊沿對(duì)齊與中心對(duì)齊有什么區(qū)別呢?對(duì)于PMSM FOC應(yīng)該使用那種對(duì)齊方式呢?為什么呢?
    發(fā)表于 02-05 06:06