首頁技術(shù)文章正文

C/C++:代碼的書寫格式及規(guī)范

更新時(shí)間:2017-12-29 來源:黑馬程序員 瀏覽量:

代碼風(fēng)格有很多種,Windows 和Linux都有自己主流的代碼風(fēng)格,每個(gè)團(tuán)隊(duì)、每個(gè)公司也可能有自己的代碼風(fēng)格,爭論哪種風(fēng)格好哪種風(fēng)格壞根本沒有什么意義。有助于其他程序員理解的代碼風(fēng)格都是可以接受的,因?yàn)樽裱囟ùa風(fēng)格的目的就是為了便于交流。

1 命名要展示對(duì)象的功能(標(biāo)識(shí)符)

作用

給包,類,方法,變量等起名字

組成規(guī)則

由字符,下劃線_,美元符$組成(包括英文大小寫字母,中文字符,數(shù)字字符等)。

注意事項(xiàng):

不能以數(shù)字開頭

不能是Java中的關(guān)鍵字

命名原則:

盡量做到見名知意

1.1命名規(guī)則

a工程名

工程名一定要能傳達(dá)文件的內(nèi)容信息,別人一看到工程名就能知道文件中放的是什么內(nèi)容。把一個(gè)類的代碼或者某一類代碼放在一起是好的習(xí)慣,這樣就很容易給工程取一個(gè)直觀的名字。業(yè)余愛好者常常把很多沒關(guān)系的代碼糅到一個(gè)文件中,結(jié)果造成代碼雜亂無章,也很難給它取一個(gè)恰當(dāng)?shù)拿?

b包

最好是域名倒過來,要求所有的字母小寫

c類或者接口

如果是一個(gè)單詞首字母大寫

如果是多個(gè)單詞每個(gè)單詞首字母大寫(駝峰標(biāo)識(shí))

d方法或者變量

如果是一個(gè)單詞全部小寫

如果是多個(gè)單詞,從第二個(gè)單詞首字母大寫

e常量

如果是一個(gè)單詞,所有字母大寫

如果是多個(gè)單詞,所有的單詞大寫,用下劃線區(qū)分每個(gè)單詞

f面向?qū)ο竺绞?/p>

(1) 以對(duì)象為中心,采用“主語(對(duì)象)+謂語(動(dòng)作)”的形式來命名,取代傳統(tǒng)的“謂語(動(dòng)作)+賓語(目標(biāo))”的形式。

如:dlist_append

(2) 第一個(gè)參數(shù)為對(duì)象,并用thiz命名。

如:dlist_append(DList* thiz, void* value);

(3) 對(duì)象有自己的生命周期,因此都有相應(yīng)的創(chuàng)建和銷毀函數(shù)。

2 排版布局要美觀大方

2.1 合理使用空格

等號(hào)兩邊用空格。如:int a = 100;

參數(shù)之間用空格。如:test(int a, int b, int c)

語句末的分號(hào)與前面內(nèi)容不要加空格。如:test(a, b, c);

其他能讓代碼更美觀的地方。

2.2 合理使用括號(hào)

用括號(hào)分隔子表達(dá)式,不要只靠默認(rèn)優(yōu)先級(jí)來判斷。((a && b) || (c && d))

用括號(hào)分隔if/while/for等語句的代碼塊,那怕代碼只有一行。

2.3 合理縮進(jìn)

每一級(jí)都正??s進(jìn),用tab縮進(jìn)取代空格縮進(jìn)。用空格縮進(jìn)的目的是防止代碼因編輯器的tab寬度不同而變亂,這個(gè)擔(dān)心現(xiàn)在是多余的 了,代碼編輯器都支持tab寬度設(shè)置了。如果代碼縮進(jìn)的層次太多(比如超過三層),則可能是代碼設(shè)計(jì)上出了問題。

2.5 遵從團(tuán)隊(duì)的習(xí)慣

這一點(diǎn)是最重要的,一個(gè)團(tuán)隊(duì)就要有一個(gè)團(tuán)隊(duì)的樣子,不管你的水平有多高,遵循團(tuán)隊(duì)的規(guī)則是一個(gè)程序員的基本素養(yǎng)。如果團(tuán)隊(duì)的規(guī)則確實(shí)不好,大家應(yīng)該一起完善它。做到這一點(diǎn),你已經(jīng)離成為專業(yè)程序員這個(gè)目標(biāo)更近一步了,重新做一遍練習(xí)吧。隨著后面的學(xué)習(xí),你就可以真正走進(jìn)專業(yè)程序員這個(gè)行列了。


本文版權(quán)歸黑馬程序員C/C++學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!


作者:黑馬程序員C/C++培訓(xùn)學(xué)院


首發(fā):http://c.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!