C 語言快速導覽 - 關鍵字

關鍵字為具有語法功能的保留字,C 語言的關鍵字共有 34 個,如以下列表
autoelselongswitch
breakenumregistertypedef
caseexternrestrictunion
charfloatreturnunsigned
constforshortvoid
continuegotosignedvolatile
defaultifsizeofwhile
doinlinestatic
doubleintstruct


依用途區分,可分為六大類,分別是


型態指定詞



C 語言關鍵字中的型態指定詞有
  • void
  • char
  • short
  • int
  • long
  • float
  • double
  • signed
  • unsigned
  • struct
  • union
  • enum
  • typedef


基本資料型態分成三大類,整數、浮點數跟字元,如下表
資料型態關鍵字
整數short int long
浮點數float double
字元char


signed 、 unsigned 可用為修飾整數及字元兩種資料型態,前者宣告其值為帶有正負號的整數,後者則宣告其值為不帶正負號的整數。


請參考 C 語言的基本資料型態有更詳細的敘述。


衍生資料型態結構使用 struct 宣告及定義,聯合則用 union 宣告及定義,而列舉常數則用 enum 宣告及定義。關鍵字 typedef 可將已定義的資料型態取別名,簡便往後的使用。


請參考 C 語言的衍生資料型態有更詳細的敘述。


void 可用為宣告沒有回傳值的函數,或表示為具有空參數列的函數。




型態修飾詞



C 語言關鍵字中的型態修飾詞有
  • const
  • restrict
  • volatile


這三個型態修飾詞的目的都是為了達到記憶體利用的最佳化。最常用的是 const ,其將資料宣告為常數,同時賦予初值後不可再做更改。


宣告為 volatile 的變數,係指程式每一次用到這個變數都須重新讀取,因為可能會被其宣告範圍外的程式修改。而 restrict 是 C99 增加的關鍵字,用在指標型態的變數上,目前各編譯器支援不一。


請參考 C 語言的宣告有更詳細的敘述。



儲存類別指定詞



C 語言關鍵字中的儲存類型指定詞有
  • auto
  • extern
  • register
  • static


C 儲存類別有兩種,一種為自動型,使用關鍵字 auto 或 register ,編譯器會替宣告為 auto 的變數保留記憶體空間, auto 也為預設值,這是說編譯器會主動把沒有加入儲存類別指定詞的變數設為自動型。而編譯器會將宣告為 register 的變數放入暫存器中,以加快程式的執行。


另一種為靜態型,使用關鍵字 static ,同樣的,編譯器會替宣告為 static 的變數保留記憶體空間,同時其值會一直保留到程式結束。


extern 用於該變數名稱已在其他地方定義,這是做外部連結之用。


請參考 C 語言的宣告有更詳細的敘述。



函數類型指定詞



C 語言關鍵字中的函數類型指定詞有
  • inline


特殊的 inline 函數,可加快程式的執行。


請參考 C 語言的 inline 函數有更詳細的敘述。



控制陳述



C 語言關鍵字中的控制陳述有
  • break
  • case
  • continue
  • default
  • do
  • else
  • for
  • goto
  • if
  • switch
  • return
  • while


控制陳述大致上可分為選擇及迴圈兩大類。選擇控制有 if 、 if-else 、 多重 if-else 連用、 switch-case-deaflaut 等幾種,皆依條件而有不同的執行方向。


迴圈控制有 for 、 while 、 do-while 三種,前二種屬於前測式的迴圈,最後一種 do-while 則是屬於後測式的迴圈。 break 用於跳出迴圈,而 continue 用於跳過這次迴圈的執行,直接進行下一輪的執行。


請參考 C 語言的控制結構有更詳細的敘述。



運算子



C 語言關鍵字中的運算子
  • sizeof


關鍵字 sizeof 用為計算資料所佔的位元組數,通常在需要動態分配記憶體空間時用到。


請參考 C 語言的運算子有更詳細的敘述。




1 則留言:

匿名 提到...

請問站長:

在【控制陳述】中的這句「switch-case-deaflaut 等幾種」……
不知「deaflaut」一字是否為筆誤呢?

感謝你的無私奉獻。