【C語言】37個關鍵字


 

C語言37個關鍵字

 一、相關基礎知識                                                 

 

ANSI美國國家標准學會(AMERICAN NATIONAL STANDARDS INSTITUTE: ANSI)成立於1918年。

 

關鍵字:是由系統定義的,不能重新做其他定義的字符,且每個關鍵字已經賦予了不同的意義,讓編程者能夠使用來告訴編譯器完成不同的工作PS:C語言嚴格區分大小寫,int!=INT,可以定義int INT;

 

 二、具體內容                                                     


原來的K&R關鍵字共27個:auto  double  int  struct  break  else  long  switch  case  register  typedef   char  extern  return  union  float  short   unsigned  continue  for  default  goto   sizeof   do  if  

 while  static    

ISO/ANSI C90新增5個:enum  signed  void  volatile  const 

C99新增5個: inline  restrict  _Bool   _Complex   _Imaginary 

總共27+5+5=37

根據關鍵字的作用,可以將關鍵字大致分為數據類型關鍵字流程控制關鍵字兩大類:

 一、數據類型關鍵字(20個)

   基本數據類型(5個)

   1void聲明函數無返回值或無參數,聲明無類型指針,顯式丟棄運算結果

   2char字符型類型數據,屬於整型數據的一種

   3int整型數據,通常為編譯器指定的機器字長

   4float單精度浮點型數據,屬於浮點數據的一種

   5double雙精度浮點型數據,屬於浮點數據的一種

   類型修飾關鍵字(4個)

   6short修飾int,短整型數據,可省略被修飾的int

   7long修飾int,長整形數據,可省略被修飾的int

   8signed修飾整型數據,有符號數據類型

   9unsigned修飾整型數據,無符號數據類型

   復雜類型關鍵字(5個)

   10struct結構體聲明

   11union共用體聲明

   12enum枚舉聲明

   13typedef聲明類型別名

   14sizeof得到特定類型或特定類型變量的大小

   存儲級別關鍵字(6個)

   15auto指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配

   16static指定為靜態變量,分配在靜態變量區,修飾函數時,指定函數作用域為文件內部

   17register指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數

   18extern指定對應變量為外部變量,即在另外的目標文件中定義,可以認為是約定由另外文件聲明的韻蟮囊桓觥耙 謾?

   19constvolatile合稱“cv特性,指定變量不可被當前線程/進程改變(但有可能被系統或其他線程/進程改變)

   20volatileconst合稱“cv特性,指定變量的值有可能會被系統或其他進程/線程改變,強制編譯器每次從內存中取得該變量的值

 二、流程控制關鍵字(12

   跳轉結構(4個)

   21return用在函數體中,返回特定值(或者是void值,即不返回值)

   22continue結束當前循環,開始下一輪循環,執行到此只結束本輪循環,繼續新一輪循環

   23break跳出當前循環或switch結構,執行到此跳出所有的循環,即結束for語句等

   24goto無條件跳轉語句

   分支結構(5個)

   25if條件語句

   26else條件語句否定分支(與if連用)

   27switch開關語句(多重分支語句)

   28case開關語句中的分支標記

   29default開關語句中的其他分治,可選。

   循環結構(3個)

   30forfor循環結構,for(1;2;3)4;的執行順序為1->2->4->3->2...循環,其中2為循環條件

   31dodo循環結構,do 1 while(2);的執行順序是1->2->1...循環,2為循環條件

   32whilewhile循環結構,while(1) 2;的執行順序是1->2->1...循環,1為循環條件

 

(以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。)

    PS:C語言把0作為false,非0true

 

 

三、C99新增(5個)

    33inline內聯函數,是為了解決預處理器宏存在的問題所提出一種解決方案,用來提高函數使用效率。內聯函數使用inline關鍵字定義,並且函數體和申明必須結合在一起, 否則編譯器將他作為普通函數對待。

    34restric關鍵字只用於限定指針;該關鍵字用於告知編譯器,所有修改該指針所指向內容的操作全部都是基於(base on)該指針的,即不存在其它進行修改操作的途徑;這樣的后果是幫助編譯器進行更好的代碼優化,生成更有效率的匯編代碼。

    35Bool布爾類型,用來表示真或假,零表示假,非零表示真。所有非零的數賦值給布爾型變量,最終的值還是1,包含標准頭文件 stdbool.h 后,我們可以用 bool 代替 _Bool true 代替 false 代替 

    36_Complex表示復數,復數類型包括一個實部和一個虛部

     37_Imaginary表示虛數,虛數類型沒有實部,只有虛部

 三、分析總結                                                     

 四、實例測試代碼                                                 

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM