C語言變數命名規則

2020-07-16 10:04:23
在定義變數時,變數名可以是字母、數位和下劃線的組合。但是也不是隨便的組合,要注意以下幾個命名規則:

1) 變數名的開頭必須是字母或下劃線,不能是數位。實際程式設計中最常用的是以字母開頭,而以下劃線開頭的變數名是系統專用的。

隨便開啟一個標頭檔案就會看到,它裡面所有的變數名、宏名、函數名全是以下劃線開始的。
開啟 VC++ 6.0 或者 VS 2010 等,然後在裡面隨便寫一個標頭檔案名,比如 stdio.h,然後選中它,右擊,在彈出的快捷選單中單擊Open Document"stdio.h"就開啟stdio.h這個標頭檔案了。這時需要注意的是,開啟後千萬不要改動裡面的內容,看看就行了。
所以為了避免與系統定義的名字產生衝突,在程式設計的時候,除非要求這麼定義,否則永遠都不要使用下劃線作為一個變數名的開頭。

2) 變數名中的字母是區分大小寫的。比如 a 和 A 是不同的變數名,num 和 Num 也是不同的變數名。

3) 變數名絕對不可以是C語言關鍵字,這一點一定要記住!

4) 變數名中不能有空格。這個可以這樣理解:因為上面我們說過,變數名是字母、數位、下劃線的組合,沒有空格這一項。

命名規範

以上變數命名規則是C語言語法規定的,必須遵守,不遵守就是錯的。除此以外,在實際開發中程式設計師還形成了一種變數命名“習慣”,或者說是約定成俗的變數命名規範,它們雖然不受語法的約束,但是遵守這些“事實標準”會讓程式碼更加專業,更加高大上。

1) 禁止取單個字母作為變數名(如 a、b、c、d、i、j、k、m、n……)。在前面的講解中之所以用單個字母,只是為了方便講解,以免喧賓奪主。剛開始學的時候也可以用,但是不要永遠就只會用單個字母。

那為什麼不要定義成單個字母呢?原因很簡單——沒有含義!你定義變數 a,其他人怎麼知道這個 a 是什麼意思?就算有注釋,但難免會忘記。

所以在定義變數的時候,變數名最好要有明確的含義,這樣可以提高程式碼的可讀性。不管是自己寫程式,還是別人讀你的程式,都會很舒服。

在實際程式設計中經常用英文單詞或英文單詞的縮寫來作為變數名,而且縮寫也有一定要規則:
  • 通常較短的單詞可通過去掉“元音”形成縮寫,比如表示“個數”的 count 可以縮寫成 cnt;
  • 較長的單詞可取單詞中的幾個字母形成縮寫;
  • 對於一些單詞還有大家公認的縮寫,比如:
    • temp 可縮寫為 tmp;  //temp是“臨時”的意思
    • flag 可縮寫為 flg;  //flag是“標誌位”的意思
    • statistic 可縮寫為 stat;  //statistic是“統計”的意思
    • increment 可縮寫為 inc;
    • message 可縮寫為 msg;

如果變數名由多個單詞組成而且不用縮寫,那麼每個單詞的首字母全部都要用大寫,必要時可用下劃線分隔。

2) 但並不是說就絕對不可以用單個字母,有些變數它本身就是沒有含義,我們也不能硬生生給它賦予含義,這時候就可以用單個字母。比如後面學習回圈語句的時候,裡面有一個迴圈變數,它就是定義成 i、j、k,這已經是公認的了。

但大多數情況下,在程式設計的時候變數都是有含義的,這時候就應該用英文單詞或英文單詞的縮寫作為它的名字。