識別符號是什麼,C++識別符號詳解

2020-07-16 10:04:40
識別符號是一個由程式設計師定義的名稱,代表程式的某些元素。變數名就是識別符號的範例。只要不使用任何 C++ 關鍵字,程式設計師可以在 C++ 中選擇自己的變數名。

C++ 中的關鍵字構成了該語言的“核心”,它們都有其特定目的。表 1 顯示了 C++ 關鍵字 的完整列表,請注意它們都是小寫的:

表 1 C++關鍵字
alignas const for private throw
alignof constexpr friend protected true
and const_cast goto public try
and_eq continue if register typedef
asm decltype inline reinterpret_cast typeid
auto default int return typename
bitand delete long short union
bitor do mutable signed unsigned
bool double namespace sizeof using
break dynamic_cast new static virtual
case else noexecpt static_assert void
catch enum not static_cast volatile
char explicit not_eq struct wchar_t
char16_t export nullptr switch while
char32_t extern operator template xor
class false or this xor_eq
compl float or_eq thread_local  

在給變數命名時,應選擇能指示變數用途的名稱。例如,有人可能會這樣給變數命名:

int x;

但是,像 x 這樣的名字對於提示變數的用途其實沒有什麼幫助。以下是一個更好的例子:

int itemsOrdered;

名稱 itemsOrdered 可以讓任何讀取程式的人都會對該變數的用途有所猜測。這種編寫程式碼的方式有助於生成自我解釋型的程式,這意味著通過閱讀程式碼就可以了解該程式的內容。因為現實中的程式通常有成千上萬行程式碼,所以程式碼盡可能地自我解釋是非常重要的。

有些人可能已經注意到變數名稱 itemsOrdered 中存在的大小寫字母混合的狀況。雖然所有 C++ 的關鍵字都必須用小寫字母表示,但在自定義的變數名中還是可以使用大寫字母的。

itemsOrdered 中的 O 採用大寫的原因是為了提高可讀性。通常情況下,“items ordered”是兩個單詞,但是在變數名中不能有空格,所以兩個單詞必須組合成一個。當“items”和“ordered”組合在一起時,也就得到了如下變數定義語句:

int itemsordered;

為了使程式碼更容易閱讀,在命名變數時,將第 2 個單詞和任何後續單詞的首字母大寫,就像 itemsOrdered 這樣。當然,這種風格的編寫方法並不是強制性的,你完全可以按自己的習慣釆用全部小寫、全部大寫或組合使用。實際上,有些程式設計師喜歡使用下畫線字元來分隔變數名中的單詞,如下所示。

int items_ordered;

合法識別符號

無論釆用哪一種編寫風格,都要保持一致,並使變數名盡可能提示其用途。以下是所有 C++ 識別符號必須遵循的一些特定規則。
  • 第一個字元必須是字母 a 到 z、A 到 Z 或下畫線字元(_)中的一個。
  • 第一個字元後,可以使用字母 a 到 z 或 A 到 Z、數位 0 到 9 或下畫線。
  • 大小寫字元是不同的。這意味著 ItemsOrdered 與 itemsordered 不一樣。

表 2 C++變數名範例
變M名 是否合法
dayOfWeek 合法
3dGraph 非法。變數名不能以數位開頭
_employee_num 合法
June1997 合法
Mixture#3 非法。變數名只能使用字母、數位和下畫線

表 2 列出了若干變數名稱,並指出了它們在 C++ 中是合法還是非法。