在C語言中,常量可以是整數常量、浮點數常量、字符常量、字符串常量以及枚舉常量。
- 整數常量:可以是十進制、八進制或十六進制的數字序列。例如:123、0123、0x123。
- 浮點數常量:可以是帶有小數點的數字序列,也可以使用指數形式。例如:3.14、0.123、1.23e-4。
- 字符常量:由單引號括起來的單個字符。例如:‘A’、‘b’、‘9’。
- 字符串常量:由雙引號括起來的字符序列。例如:“Hello”、“123”。
- 枚舉常量:定義在枚舉類型中的常量。例如:enum Color {RED, GREEN, BLUE}; 中的RED、GREEN、BLUE。
要判斷一個常量是否合法,可以根據以下規則:
- 整數常量必須符合整數的表示范圍,不能超出int、long等類型的取值范圍。
- 浮點數常量必須符合浮點數的表示規范,包括小數點位置、指數形式等。
- 字符常量只能包含一個字符,并且必須用單引號括起來。
- 字符串常量必須用雙引號括起來,并且可以為空字符串。
- 枚舉常量必須定義在合法的枚舉類型中。
在編譯過程中,如果常量不符合以上規則,則會產生編譯錯誤。因此,編譯器會負責判斷常量的合法性。