首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言關鍵字完整詳解:32 個關鍵字分類解析

     編輯:關於C語言

前言

C89/C90 標準定義 32 個關鍵字 (C99 增加 5 個,C11 再增 7 個)。本文依功能分類逐一解析核心用法與陷阱。

一、資料類型關鍵字 (12 個)

關鍵字用途
char字元型 (1 byte)
short短整數 (通常 2 bytes)
int整數 (通常 4 bytes)
long長整數 (4/8 bytes)
float單精度浮點 (4 bytes)
double雙精度浮點 (8 bytes)
signed有號 (預設)
unsigned無號
void無類型 / 無回傳 / 無參數
struct結構體,支援封裝/繼承/多態雛形
union共用體,成員共享記憶體,省空間
enum列舉,增強可讀性,預設從 0 起序

union 範例:`union {int a; float b; char *c;} u;` 佔用 `max(sizeof(int), sizeof(float), sizeof(char*))` 位元組。寫入一成員後讀取另一成員為未定義行為 (型別懲罰)。

二、控制語句關鍵字 (12 個)

迴圈

  • `for` / `while` / `do` — 三種迴圈結構。

條件判斷

  • `if` / `else` — 雙分支。
  • `switch` / `case` / `default` — 多路分支,**case 穿透**特性需配合 `break`。

跳轉

  • `goto` — 無條件跳轉,**慎用** (破壞結構化、易漏初始化)。
  • `continue` — 結束本輪迴圈,進入下一輪。
  • `break` — 跳出迴圈或 `switch`。
  • `return` — 函數返回,後續程式碼不執行。

三、儲存類別關鍵字 (4 個)

關鍵字說明
auto區域變數預設,極少顯式使用。
register建議存入暫存器,不可取址 (`&`),編譯器可忽略。
static三種語境:
1. 全域靜態:僅本編譯單元可見 (internal linkage)
2. 函數靜態:僅本檔可見
3. 區域靜態:靜態儲存區、保持值、僅初始化一次
extern外部連結宣告,預設全域變數/函數即為 extern。

四、其他關鍵字 (4 個)

關鍵字重點
const唯讀變數,**定義時必須初始化**。指標修飾位置語意不同:
`const int *p` / `int const *p` — 指向常數
`int *const p` — 常數指標
`const int *const p` — 雙重常數
sizeof運算子 (非函數),編譯期計算類型/運算元大小 (bytes)。
與 `strlen` 差異:`sizeof` 為類型大小,`strlen` 為字串長度 (不含 `\0`),需以 `\0` 結尾。
typedef類型別名,**不創建新類型** 。便於移植 (如 `typedef float real;` 統一改 `double`)、簡化複雜宣告 (函數指標)。
volatile告知編譯器「值可能被外部不可見方式修改」,禁止優化 (快取/暫存器)。
適用:硬體暫存器、中斷服務常用變數、多執行緒共享旗標。

C99/C11 新增關鍵字 (補充)

  • C99:`inline`、`restrict`、`_Bool`、`_Complex`、`_Imaginary`
  • C11:`_Alignas`、`_Alignof`、`_Atomic`、`_Generic`、`_Noreturn`、`_Static_assert`、`_Thread_local`

總結

熟練掌握 32+ 關鍵字的語意、儲存類別、型別修飾、控制流與特殊屬性 (`const`/`volatile`/`restrict`),是寫出正確、高效、可移植 C 程式的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved