
- C 程式設計教程
- C - 首頁
- C 基礎
- C - 概述
- C - 特性
- C - 歷史
- C - 環境設定
- C - 程式結構
- C - Hello World
- C - 編譯過程
- C - 註釋
- C - 詞法單元
- C - 關鍵字
- C - 識別符號
- C - 使用者輸入
- C - 基本語法
- C - 資料型別
- C - 變數
- C - 整數提升
- C - 型別轉換
- C - 型別強制轉換
- C - 布林型別
- C 中的常量和字面量
- C - 常量
- C - 字面量
- C - 轉義序列
- C - 格式說明符
- C 語言中的運算子
- C - 運算子
- C - 算術運算子
- C - 關係運算符
- C - 邏輯運算子
- C - 位運算子
- C - 賦值運算子
- C - 一元運算子
- C - 自增和自減運算子
- C - 三元運算子
- C - sizeof 運算子
- C - 運算子優先順序
- C - 其他運算子
- C 語言中的決策
- C - 決策
- C - if 語句
- C - if...else 語句
- C - 巢狀 if 語句
- C - switch 語句
- C - 巢狀 switch 語句
- C 語言中的迴圈
- C - 迴圈
- C - while 迴圈
- C - for 迴圈
- C - do...while 迴圈
- C - 巢狀迴圈
- C - 無限迴圈
- C - break 語句
- C - continue 語句
- C - goto 語句
- C 語言中的函式
- C - 函式
- C - 主函式
- C - 按值呼叫函式
- C - 按引用呼叫函式
- C - 巢狀函式
- C - 可變引數函式
- C - 使用者定義函式
- C - 回撥函式
- C - 返回語句
- C - 遞迴
- C 語言中的作用域規則
- C - 作用域規則
- C - 靜態變數
- C - 全域性變數
- C 語言中的陣列
- C - 陣列
- C - 陣列的特性
- C - 多維陣列
- C - 將陣列傳遞給函式
- C - 從函式返回陣列
- C - 可變長陣列
- C 語言中的指標
- C - 指標
- C - 指標和陣列
- C - 指標的應用
- C - 指標運算
- C - 指標陣列
- C - 指標到指標
- C - 將指標傳遞給函式
- C - 從函式返回指標
- C - 函式指標
- C - 指向陣列的指標
- C - 指向結構體的指標
- C - 指標鏈
- C - 指標與陣列
- C - 字元指標和函式
- C - 空指標
- C - void 指標
- C - 懸空指標
- C - 解引用指標
- C - 近、遠和巨大指標
- C - 指標陣列的初始化
- C - 指標與多維陣列
- C 語言中的字串
- C - 字串
- C - 字串陣列
- C - 特殊字元
- C 結構體和聯合體
- C - 結構體
- C - 結構體和函式
- C - 結構體陣列
- C - 自引用結構體
- C - 查詢表
- C - 點 (.) 運算子
- C - 列舉 (或 enum)
- C - 結構體填充和打包
- C - 巢狀結構體
- C - 匿名結構體和聯合體
- C - 聯合體
- C - 位域
- C - Typedef
- C 語言中的檔案處理
- C - 輸入和輸出
- C - 檔案 I/O(檔案處理)
- C 預處理器
- C - 預處理器
- C - 編譯指示
- C - 預處理器運算子
- C - 宏
- C - 標頭檔案
- C 語言中的記憶體管理
- C - 記憶體管理
- C - 記憶體地址
- C - 儲存類別
- 其他主題
- C - 錯誤處理
- C - 可變引數
- C - 命令執行
- C - 數學函式
- C - static 關鍵字
- C - 隨機數生成
- C - 命令列引數
- C 程式設計資源
- C - 問答
- C - 快速指南
- C - 速查表
- C - 有用資源
- C - 討論
C - 關鍵字
關鍵字是在編譯器中具有特殊含義的預定義詞,它們不能用於任何其他目的。根據 C99 標準,C 語言有 32 個關鍵字。關鍵字不能用作識別符號。
下表列出了 C 語言中所有可用關鍵字(保留字)
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
continue | for | signed | void |
do | if | static | while |
default | goto | sizeof | volatile |
const | float | short | unsigned |
所有 C 語言中的關鍵字都使用小寫字母,儘管在 C 語言中新新增的關鍵字在其中包含大寫字母。C 語言是區分大小寫的語言。因此,int 是一個關鍵字,但 INT 或 Int 未被識別為關鍵字。從 C99 開始引入的新關鍵字以下劃線字元開頭。編譯器檢查原始碼中所有關鍵字的語法正確性,然後將其轉換為機器程式碼。
C 關鍵字示例
在以下程式中,我們使用關鍵字作為識別符號,即作為使用者定義函式的名稱,這將導致編譯錯誤。
#include <stdio.h> void register(int, int); int main () { /* variable definition: */ int a=5, b=7; register(a,b); return 0; } void register(int a, int b) { printf("%d", a+b); }
錯誤
main.c:3:15: error: expected identifier or '(' before 'int' 3 | void register(int, int); | ^~~ main.c: In function 'main': main.c:8:14: error: expected ')' before ',' token 8 | register(a,b); | ^ | ) main.c: At top level: main.c:12:15: error: expected identifier or '(' before 'int' 12 | void register(int a, int b) | ^
錯誤的原因是我們使用關鍵字 register 作為使用者定義函式的名稱,這是不允許的。
ANSI C 版本有 32 個關鍵字。這些關鍵字是程式邏輯的基本元素。這些關鍵字可以大致分為以下型別:
- 基本資料型別
- 使用者定義型別
- 儲存型別
- 條件語句
- 迴圈和迴圈控制
- 其他
讓我們討論每類關鍵字。
基本型別 C 關鍵字
這些關鍵字用於變數宣告。C 語言是一種靜態型別語言,必須宣告要使用的變數。C 語言中的變數使用以下關鍵字宣告
int | 宣告一個整型變數 |
long | 宣告一個長整型變數 |
short | 宣告一個短整型變數 |
signed | 宣告一個有符號變數 |
double | 宣告一個雙精度變數 |
char | 宣告一個字元型變數 |
float | 宣告一個浮點型變數 |
unsigned | 宣告一個無符號變數 |
void | 指定 void 返回型別 |
使用者定義型別 C 關鍵字
C 語言允許您根據需要定義新的資料型別。使用者定義型別具有一個或多個基本型別元素。
以下關鍵字用於使用者定義的資料型別:
struct | 宣告一個結構體型別 |
typedef | 建立一個新的資料型別 |
union | 宣告一個聯合體型別 |
enum | 宣告一個列舉型別 |
儲存型別 C 關鍵字
以下關鍵字集稱為儲存說明符。它們指示變數儲存在記憶體中的位置。變數的預設儲存型別是 auto,儘管您可以要求編譯器以特定的儲存屬性形成變數。
auto | 指定自動儲存類別 |
extern | 宣告變數或函式 |
static | 指定靜態儲存類別 |
register | 指定暫存器儲存類別 |
條件語句 C 關鍵字
以下關鍵字集可幫助您在程式中設定條件邏輯。用 if 和 else 關鍵字表示的條件邏輯為條件提供兩種替代操作。對於多分支,請使用switch – case結構。在 C 語言中,彙編程式中的跳轉操作由goto 關鍵字實現。
goto | 跳轉到帶標籤的語句 |
if | 開始一個 if 語句 |
else | 在 if 條件為假時執行 |
case | 標記 switch 語句中的語句 |
switch | 開始一個 switch 語句 |
default | 指定 switch 語句中的預設語句 |
迴圈和迴圈控制 C 關鍵字
重複或迭代是演算法的一個重要方面。C 語言提供了形成迴圈的不同替代方案,以及控制迴圈行為的關鍵字。每個關鍵字都允許您形成具有不同特性和用途的迴圈。
For | 開始一個for 迴圈 |
do | 開始一個do-while 迴圈 |
while | 開始一個while 迴圈 |
continue | 跳過迴圈的一次迭代 |
break | 終止迴圈或 switch 語句 |
其他 C 關鍵字
以下其他關鍵字也極其重要
const | 指定一個常數值 |
Sizeof | 確定資料型別的尺寸 |
Volatile | 編譯器變數的值可能隨時更改 |
在 C99 版本中,增加了五個關鍵字:
- _Bool
- _Complex
- _Imaginary
- inline
在 C11 中,增加了七個關鍵字
- _Alignas
- _Alignof
- _Atomic
- _Generic
- _Noreturn
- _Static_assert
當 C23 標準釋出時,它將引入 14 個新關鍵字:
- alignas
- alignof
- 布林型
- 編譯時常量
- 假
- 空指標
- 靜態斷言
- 執行緒區域性
- 真
- typeof
- typeof_unqual
- _Decimal128
大多數最近保留的關鍵字以一個下劃線後跟一個大寫字母開頭,因為現有的程式原始碼不應該使用這些識別符號。
使用關鍵字時必須牢記以下幾點
- 關鍵字由程式語言保留,並具有預定義的含義。它們不能用作變數或函式的名稱。
- 每個關鍵字都必須根據其使用規定的語法使用。如果違反語法,編譯器將報告編譯錯誤。
- C 是一種最小的計算機語言之一,其 ANSI C 版本只有 32 個關鍵字,儘管之後添加了一些關鍵字。