1.5.4 變量聲明
現(xiàn)在對(duì)類型做了初步的介紹,接下來(lái)再回到程序。程序所做的第一件事情就是用下面一行代碼聲明一個(gè)變量(請(qǐng)求創(chuàng)建一個(gè)變量):
int score;
這段代碼聲明了一個(gè)名為score的int型變量。我們通過(guò)變量名來(lái)訪問(wèn)這個(gè)變量??梢钥吹?,聲明一個(gè)變量需要指定變量的類型,然后在其后跟上所選擇的變量名。因?yàn)槁暶魇钦Z(yǔ)句,所以必須以分號(hào)結(jié)尾。
接下來(lái)的3行代碼聲明了3種類型的3個(gè)變量:distance是double型變量,playAgain是char型變量,shieldsUp是bool型變量。
游戲(以及所有大型應(yīng)用程序)通常需要大量的變量。幸運(yùn)的是,C++允許在一條語(yǔ)句中聲明同一類型的多個(gè)變量,正如下面一行代碼所示:
short lives, aliensKilled;
這一行聲明了兩個(gè)short型變量:lives和aliensKilled。
盡管本例在main()函數(shù)開(kāi)頭部分定義了一些變量,但并不意味著必須在一個(gè)地方定義所有變量。在該程序后面將看到,我們經(jīng)常在使用之前才定義某個(gè)變量。
1.5.5 變量命名
要聲明一個(gè)變量,必須為變量提供一個(gè)名稱,也就是變量的標(biāo)識(shí)符。合法的標(biāo)識(shí)符只需要滿足以下幾個(gè)規(guī)則:
● 標(biāo)識(shí)符只能包含數(shù)字、字母和下劃線。
● 標(biāo)識(shí)符不能以數(shù)字開(kāi)頭。
● 標(biāo)識(shí)符不能是C++關(guān)鍵字。
關(guān)鍵字是C++為其本身使用保留的特殊詞匯。關(guān)鍵字不多,詳見(jiàn)附錄C。
除了創(chuàng)建合法變量名必須遵循的規(guī)則外,下面給出一些準(zhǔn)則來(lái)選擇好的變量名。
● 選擇描述性的名稱。變量名應(yīng)該讓其他程序員容易理解。例如,使用score而不是s(該規(guī)則的一個(gè)例外是臨時(shí)使用的變量。這種情況下,可以使用單字母變量名,例如x)。
● 前后一致。對(duì)于多單詞變量名的寫法,有兩種思想流派。是high_score還是highScore?本書使用第二種方式,其中第二個(gè)單詞(以及其他單詞)的首字母是大寫。這就是匈牙利命名法。但是只要保持前后一致,使用哪種方法并不重要。
● 遵循語(yǔ)言的傳統(tǒng)。有些命名習(xí)慣已經(jīng)成為傳統(tǒng)。例如,大多數(shù)語(yǔ)言(包括C++)中,變量名以小寫字母開(kāi)頭。另一個(gè)傳統(tǒng)是避免變量名的首字符使用下劃線。以下劃線開(kāi)始的名稱有特殊含義。
● 使用短變量名。盡管playerTwoBonusForRoundOne描述性很強(qiáng),但是它讓代碼很難讀。另外,長(zhǎng)變量名會(huì)增加錄入錯(cuò)誤的風(fēng)險(xiǎn)。作為一條準(zhǔn)則,請(qǐng)把變量名限制在15個(gè)字符以內(nèi)。然而,編譯器會(huì)有一個(gè)變量名長(zhǎng)度的最終上限。
技巧
自描述的代碼使得在不看注釋的情況下也很容易理解程序的用途。良好的變量命名是向這樣的代碼邁出的一大步。