C語言中的令牌



令牌指的是計算機語言(例如C語言)原始碼中最小的單元。這個術語借用自語言學理論。就像某種語言(例如英語)中的特定文字包含單詞(字母、數字和標點符號的集合)一樣,編譯器將C程式分解成令牌,然後繼續進行編譯過程的後續階段。

編譯過程的第一階段是詞法分析器。詞法分析器將原始碼分割成單個令牌,識別令牌型別,並將令牌逐個傳遞給編譯器的下一階段。

解析器是編譯的下一階段。它能夠理解語言的語法,識別語法錯誤並將無錯誤的程式翻譯成機器語言。

C原始碼也包含不同型別的令牌。C語言中的令牌型別如下:

  • 字元集
  • 關鍵字令牌
  • 字面量令牌
  • 識別符號令牌
  • 運算子令牌
  • 特殊符號令牌

讓我們討論每種令牌型別。

C字元集

C語言識別一個字元集,其中包含英語字母——大寫字母和小寫字母(A到Z,以及a到z)、數字0到9,以及某些其他具有特殊含義的符號。在C語言中,某些字元組合也具有特殊含義。例如,\n被稱為換行符。這種組合稱為轉義序列。

以下是C語言的字元集:

  • 大寫字母:A到Z
  • 小寫字母:a到z
  • 數字:0到9
  • 特殊字元:! " # $ % & ' ( ) * + - . : , ; ` ~ = < > { } [ ] ^ _ \ /

在一對雙引號"和"之間的任何這些字元序列用於表示字串字面量。數字用於表示數字字面量。方括號用於定義陣列。花括號用於標記程式碼塊。反斜槓是跳脫字元。其他字元定義為運算子。

C關鍵字

在C語言中,預定義的字母序列稱為關鍵字。與人類語言相比,程式語言的關鍵字較少。最初,C語言有32個關鍵字,後來在後續的C標準修訂中又增加了一些。所有關鍵字都小寫。每個關鍵字都有其用法規則(在程式設計中稱為語法)。

C編譯器檢查關鍵字是否已根據語法使用,並將原始碼翻譯成目的碼。

C字面量

在計算機程式設計術語中,字面量指的是要直接賦值給變數的值的文字表示,直接硬編碼在原始碼中。

數字字面量包含數字、小數點符號和/或指數字符E或e。

字串字面量是由任何字元序列構成,放在一對雙引號中。字元字面量是單引號內的單個字元。

陣列也可以透過在方括號之間放置以逗號分隔的字面量序列來表示字面量形式。

在C語言中,轉義序列也是一種字面量。兩個或多個字元,第一個字元是反斜槓\字元,放在單引號內構成一個轉義序列。每個轉義序列都有其預定義的含義。

C識別符號

與關鍵字相反,識別符號是程式中使用者定義的元素。您需要透過為它們指定適當的名稱來定義各種程式元素。例如,變數、常量、標籤、使用者定義型別、函式等。

C語言規定了形成識別符號的某些規則。其中一個重要的限制是,保留關鍵字不能用作識別符號。例如,for是C語言中的關鍵字,因此它不能用作識別符號,即變數、函式等的名稱。

C運算子

C是一種計算語言。因此,C程式由執行算術和比較運算的表示式組成。C語言字元集中的特殊符號大多定義為運算子。例如,眾所周知的符號+*/C語言中的算術運算子。同樣,<>用作比較運算子

C特殊符號

除了定義為運算子的符號之外,其他符號還包括逗號、分號和冒號等標點符號。在C語言中,您會發現它們在不同上下文中使用方式不同。

類似地,圓括號()用於算術表示式以及函式定義中。花括號用於標記函式的範圍,條件語句迴圈語句中的程式碼塊等。

廣告