《C程式設計語言》筆記 (九) 參考手冊1

來源:互聯網
上載者:User

標籤:浮點數   文法   序列   就是   初始化   擴充   掃描   問號   bre   

A.1 引言A.2 詞法規則
程式由儲存在檔案中的一個或多個翻譯單元組成程式的翻譯分幾個階段完成翻譯的第一階段完成低級的詞法轉換執行以字元#開頭的行中的指令,並進行宏定義和宏擴充在預先處理完成後,程式被規約成一個記號序列

 

   記號
C語言中共有6類記號:標識符關鍵字常量字串字面量運算子其他分隔字元空格 橫向定位字元和縱向定位字元 分行符號 換頁符 和注釋在程式中僅用來分隔記號 因此被忽略相鄰的標識符 關鍵字和常量之間需要用空白符分隔如果到某一字元為止的輸入留被分隔成若干記號那麼下一個記號就是後續字元序列中可能構成記號的最長字串

 

   注釋
注釋以字元/*開始 以 */結束注釋不能夠嵌套,也不能出現在字串字面量或字元字面量中

 

   標識符
標識符是由字母和數字組成第一個字元必須是字母,底線也被看成是字母大寫字母和小寫字母是不同的標識符可以為任意長度對應內部標識符來說,至少前31個字母是有效內部標識符包括前置處理器的宏名和其他所有沒有外部連結的名字帶有外部連結的標識符限制更嚴格一些,實現可能是認為這些標識符的前6個字元有效,而且可能忽略大小寫

  

   關鍵字
下列標識符被保留作為關鍵字,不能用於其他用途auto double int structbreak else long switchcase enum register typedefchar extern return unionconse float short unsignedcontinue for signed voiddefault togo sizeof volatiledo if static while某些實現還把fortran和asm保留為關鍵字關鍵字const signed  和volatile是ANSI標準新增加的enum和void是第一版後增加的entry曾經是保留字,但未被使用,現在已經不是了

  

   常量
常量有多種類型。每種類型的常量都有一個資料類型常量:整型常量字元常量浮點常量枚舉常量1.整型常量由一串數字組成如果它以數字0開頭,則為8進位,否則為10進位八進位常量不包含8 和9 以0x或0X開頭的數字為16進位,16進位包含a(A)到f(F) 的字母整型常量若以u或U為尾碼,表示一個無符號數若以l或L尾碼,表示一個長整型若以UL為尾碼,表示一個無符號長整型2.字元常量字元常量是用單引號引起來的一個或多個字元構成的序列,如‘x‘字元常量的值是執行時機器字元集中此字元對應的數值,多字元常量的值由具體實現定義字元常量不包括字元‘和分行符號可以使用以下逸出字元序列表示這些字元以及其他一些字元分行符號 \n橫向定位字元 \t縱向定位字元 \v回退符 \b斷行符號符 \r換頁符 \f響鈴符 \a反斜線 問號  \?單引號 \‘雙引號 \"八位元 \000十六進位數  \xhh逸出序列\000由反斜線後跟1~3個八位元值組成 這些八進位用來指定所期望的字元值\0便是一個常見的例子,表示字元NULL逸出序列\xhh 反斜線後面緊跟x以及十六進位數值,表示所期望的字元值數位個數沒有限制,但如果字元值超過最大的字元值,該行為是未定義的3.浮點常量由整數 小數點 小數 一個e(E) 一個可以選的帶符號整數型別的指數和一個可選的表示類型尾碼(F f L l)的組成整數和小數均由數字序列組成可以沒有整數或小數部分(但不能兩者都麼有)還可以沒有小數點或者e和指數部分(但不能兩者都沒有)浮點常量的類型由尾碼確定F(f)表示float類型L(l) 表示long double類型 沒有尾碼表示double類型

  

   字串字面值
字串字面量也稱為字串常量是用雙引號引起來的一個字元序列字串的類型為"字元數組",儲存類為static它使用給定的字元進行初始化對相同的字串字面值是否進行區分取決於具體實現如果程式試圖修改字串字面值,則行為是未定義的我們可以把相鄰的字串字面值串連為一個單一的字串執行任何串連操作後,都將在字串的後面增加一個Null 字元\0這樣掃描字串的程式便可以找到字串的結束位置字串字面值不包括分行符號和雙引號字元但可以用與字元常量相同的逸出字元序列表示

 

A.3 文法符號
在手冊用到的文法符號中,文法類別用楷體及斜體表示文字和字元以打字型字型表示多個候選的類別通常在不同的行中但在一些情況下,一組字元長度較短的候選項可以放在一行,並以短語 one of標識可選的終結符或非終結符帶有下標  opt{運算式 opt}表示一個括在花括弧中的運算式是可選的

  

A.4 標識符的含義
標識符也稱為名字可以指代多種實體 函數結構標記聯合標記枚舉標記結構成員或聯合成員枚舉常量類型定義名標號以及對象等對象有時也稱為變數,它是一個儲存位置對它的解釋依賴兩個主要屬性儲存區類和類型儲存類決定了與該標識對象相關聯的儲存區的生存期類型決定了對象中值的含義名字還具有一個範圍和一個串連範圍即程式中可以訪問此名字的地區串連決定另一範圍中的同一名字是否指向同一個對象

  

儲存類
儲存類分為兩類:自動儲存類靜態儲存類聲明對象時使用的一些關鍵字和聲明的上下文共同決定了對象的儲存類自動儲存類對象對於一個程式塊來說是局部的,在退出程式時對象消失如果沒有使用儲存類說明符 或者使用了auto限定符則程式塊中的聲明產生的都是自動儲存物件聲明為register的對象也是自動儲存物件,並且將被儲存在機器的快速寄存器中靜態對象可以是某個程式的局部對象,也可以是所以程式塊的外部對象無論是哪一種情況 在退出和再次進入函數或程式塊是其值將保持不變在一個程式塊中,靜態對象使用關鍵字static聲明在所有程式塊的外部聲明且與函數定義在同一級的對象總是靜態可以通過static關鍵字將對象聲明為某個特定翻譯單元的局部對象這種類型的對象將具有內部連結當省略顯式的儲存類或通過關鍵字external進行聲明時,對象度整個程式來說是全域訪問的,並且具有外部連結

  

基本類型衍生類別型類型限定符A.5 對象和左值A.6 轉換整型提升整型轉換整數和浮點數浮點類型算術類型轉換指標和整數void指向void的指標

《C程式設計語言》筆記 (九) 參考手冊1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.