如果代碼對(duì)齊不規(guī)范,代碼看著就很凌亂,比如Tab 和 空格混合使用:
?
如果你看到類似以上代碼,特別是前同事丟下爛攤子的時(shí)候,你內(nèi)心可能會(huì)出現(xiàn)十萬(wàn)只***。
01 關(guān)于代碼對(duì)齊
代碼對(duì)齊主要就是Tab、空格,還有就是二者混合,在Keil 和 IAR中設(shè)置對(duì)齊方式比較簡(jiǎn)單:
1.Keil: Edit -> Configuration -> Editor ?
2.IAR: Tools -> Options -> Editor ?
3.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,以
上截圖舉例都還好,沒有使用占用3個(gè)空格的Tab。
代碼前面的對(duì)齊都還好處理,很多工具都可以自動(dòng)排版,IAR只要選中需要對(duì)齊的代碼,Ctrl + T就可以了。Keil可以安裝格式化插件AStyle即可輕松解決問題。
但代碼后面的注釋對(duì)齊就不是那么好處理了,如果使用Tab + 空格混合方式,更是容易混亂。
02 代碼對(duì)齊究竟該用哪種?
不同人、不同公司的代碼風(fēng)格不一樣,使用的對(duì)齊方式也不一樣。代碼對(duì)齊的通常有2空格,或4空格,或者Tab對(duì)齊。
但不建議 空格 和 Tab 混合使用,或者使用3個(gè)空格,或者5個(gè)空格這種非常規(guī)方式。
究竟用2空格、4空格、還是Tab對(duì)齊,這個(gè)需要看你項(xiàng)目實(shí)際情況,都可以的,就看你代碼風(fēng)格。
唯一一點(diǎn)就是不建議混合使用,使用Tab或者空格都可以用格式化工具轉(zhuǎn)化。但如果你混合使用了,轉(zhuǎn)化出來的代碼,有可能是凌亂的。
03 Tab和空格不能在一起
要么使用Tab ,要么使用空格,如果兩者同時(shí)使用,那么會(huì)出現(xiàn)后期維護(hù)難,遭同事懟罵的后果。
審核編輯:劉清
-
嵌入式
+關(guān)注
關(guān)注
5096文章
19192瀏覽量
308088 -
IAR
+關(guān)注
關(guān)注
5文章
357瀏覽量
36818 -
TAB
+關(guān)注
關(guān)注
0文章
16瀏覽量
11573 -
keil
+關(guān)注
關(guān)注
69文章
1214瀏覽量
167389
原文標(biāo)題:嵌入式編碼對(duì)齊 Tab 和 空格混著用,太糟糕了~
文章出處:【微信號(hào):嵌入式情報(bào)局,微信公眾號(hào):嵌入式情報(bào)局】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
iccavr怎么改成tab進(jìn)4個(gè)空格?
labview 能在嵌入式xp中運(yùn)行嗎?
嵌入式小波編碼算法的原理是什么?
嵌入式c語(yǔ)言編碼規(guī)范
嵌入式c語(yǔ)言編碼規(guī)范
RISC-V MCU IDE MRS(MounRiver Studio)開發(fā)之:設(shè)置Tab鍵以指定空格數(shù)縮進(jìn)
ARM嵌入式系統(tǒng)為什么要對(duì)齊?不對(duì)齊會(huì)有哪些后果
嵌入式ARM之嵌入式軟件開發(fā)的測(cè)試與編碼
語(yǔ)音信號(hào)去噪和編碼系統(tǒng)設(shè)計(jì),DSP嵌入式系統(tǒng)開發(fā)典型案例
![語(yǔ)音信號(hào)去噪和<b class='flag-5'>編碼</b>系統(tǒng)設(shè)計(jì),DSP<b class='flag-5'>嵌入式</b>系統(tǒng)開發(fā)典型案例](https://file.elecfans.com/web2/M00/4A/12/pYYBAGKhvJOAGp1eAAAbws_k0TM687.png)
JPEG2000算法嵌入式塊編碼的DSP高效實(shí)現(xiàn)策略
![JPEG2000算法<b class='flag-5'>嵌入式</b>塊<b class='flag-5'>編碼</b>的DSP高效實(shí)現(xiàn)策略](https://file.elecfans.com/web2/M00/4A/16/pYYBAGKhvJWAWJGQAAAoCwqow48017.png)
嵌入式C語(yǔ)言-文件操用
![<b class='flag-5'>嵌入式</b>C語(yǔ)言-文件操<b class='flag-5'>用</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式系統(tǒng)的定義
ARM嵌入式系統(tǒng)中內(nèi)存對(duì)齊的重要性
![ARM<b class='flag-5'>嵌入式</b>系統(tǒng)中內(nèi)存<b class='flag-5'>對(duì)齊</b>的重要性](https://file1.elecfans.com/web2/M00/0B/50/wKgZomcxzEKACT3LAAA1HNJVj_w907.png)
評(píng)論