代碼對(duì)齊使用Tab?還是空格? 還是混合使用?
看到我技術(shù)交流群里在討論代碼對(duì)齊的話題:STM32CubeMX生成代碼使用2個(gè)空格對(duì)齊,有辦法讓代碼編變成4個(gè)空格嗎?
如果代碼對(duì)齊不規(guī)范,代碼看著就很凌亂,比如:
如果你看到類似以上代碼,特別是前同事丟下的爛攤子,你內(nèi)心可能會(huì)出現(xiàn)十萬(wàn)只草泥馬?
一、關(guān)于代碼對(duì)齊
代碼對(duì)齊主要就是Tab、空格,還有就是二者混合,在Keil 和 IAR中設(shè)置對(duì)齊方式比較簡(jiǎn)單:
Keil:
Edit -> Configuration -> Editor
IAR:
Tools -> Options -> Editor
(關(guān)于 Keil 和 IAR更多的使用教程,可以后臺(tái)回復(fù)Keil / IAR查看)
Tab和空格的區(qū)別
Tab和空格其實(shí)只是兩個(gè)不同的符號(hào),但在編程對(duì)齊中的意義卻大不一樣。一個(gè)Tab可以占空個(gè)格的位置,但一個(gè)空格就只有一個(gè)空格的位置。
在Keil開發(fā)環(huán)境中可以顯示出Tab和空格符,不妨看一下在Tab和空格交替編輯下,原本使用占2空格Tab符號(hào),實(shí)際在4隔空Tab下看代碼(和注釋)就凌亂了。
離譜的代碼中就會(huì)看見使用占3個(gè)空格的Tab,以上截圖舉例都還好,沒(méi)有使用占用3個(gè)空格的Tab。
代碼前面的對(duì)齊都還好處理,很多工具都可以自動(dòng)排版,IAR只要選中需要對(duì)齊的代碼,Ctrl + T就可以了。Keil可以安裝格式化插件AStyle即可輕松解決問(wèn)題。
但代碼后面的注釋對(duì)齊就不是那么好處理了,如果使用Tab + 空格混合方式,更是容易混亂。
代碼對(duì)齊的通常使用2空格,或4空格,或者Tab對(duì)齊,但通常不建議空格和 Tab 混合使用。
究竟用2空格、4空格、還是Tab對(duì)齊,這個(gè)需要看你項(xiàng)目實(shí)際情況,都可以的,就看你代碼風(fēng)格。
唯一一點(diǎn)就是不建議混合使用,使用Tab或者空格都可以用格式化工具轉(zhuǎn)化。但如果你混合使用了,轉(zhuǎn)化出來(lái)的代碼,有可能是凌亂的。
三、關(guān)于Tab和空格的調(diào)查
有人針對(duì) GitHub 上多種語(yǔ)言的熱門項(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è)
長(zhǎng)按前往圖中包含的公眾號(hào)關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!





