標籤:跳轉 開始 目的 執行 筆記 合成 操作 複合陳述式 控制流程
語句
如果不特別聲明,語句都是順序執行的
9.1 帶標號語句
帶標號的語句標識符:語句case 常量運算式:語句default:語句由標識符構成的標號聲明了該標識符標識符標號的唯一用途就是作為goto語句的跳轉目標標號本身不會改變程式的控制流程
9.2運算式語句
大多數運算式語句為指派陳述式或函數調用
9.3符合語句
static類型的對象僅在程式開始執行前初始化一次
9.4 選擇語句
if(運算式) 語句if(運算式) 語句 else 語句switch(運算式) 語句
9.5迴圈語句
while(運算式) 語句do 語句 while(運算式);for(運算式1;運算式2;運算式3)語句
9.6跳躍陳述式
goto 標識符;continue;break;return 運算式;
10 外部聲明
提供給C編譯器的處理輸入單元稱為翻譯單元
函數定義
函數定義聲明說明符 聲明符 聲明表 複合陳述式聲明說明符只能使用儲存類說明符extern 或static函數可以返回算術類型 結構 聯合 指標或void類型的值,但不能返回函數或數群組類型
外部聲明
外部聲明用於指定對象 函數 及其它標識符的特性外部 表明他們位於函數外部,並且不直接與關鍵字extern串連外部聲明的對象可以不指定儲存類,也可以指定為extern 或static如果一個對象或函式宣告包含static說明符,則該標識符只具有內部串連
11範圍和串連
一個程式的所有單元不必同時進行編譯.源檔案可以保持在若干個檔案中,每個檔案中可以包含多個翻譯單元,預先編譯過的常式可以從庫中進行載入.程式間函數通訊可以通過調用和操作外部資料來實現因此,我們需要考慮兩種類型的範圍第一種是標識符的詞法範圍,它是體現標識符特性的程式文本地區第二種是與具有外部串連的對象和函數相關的範圍,它決定各個單獨編譯的編譯單元中標識符之間的串連
詞法範圍
標識符可以在若干個名字空間中使用而互不影響如果位於不同的名字空間中,即使是在同一個範圍內,相同的標識符也可用於不同的目的名字空間包括對象函數類型定義名枚舉常量標號結果標記聯合標記枚舉標記結構和聯合成員在聲明外部對象中,對象或函數標識符的詞法範圍從其聲明的結束位置開始,到所在翻譯單元結束為止函數定義中形式參數的範圍從函數程式塊開始處開始,並貫穿整個函數.函式宣告中形式參數的範圍到聲明符的末尾處結束程式塊頭部中聲明的標識符的範圍是其所在的整個程式塊標號的範圍是其所在的函數
串連
在翻譯單元中,具有內部串連的同一對象或函數標識符的所有聲明都應用同一實體並且,該對象或函數對這個翻譯單元來說是唯一的具有外部串連的同一對象或函數標識符的所有聲明也引用同一實體,並且該對象或函數是被整個程式共用如果使用了static說明符,則標識符的第一個外部聲明將使得該標識符具有內部串連
《C程式設計語言》筆記 (十三) 參考手冊5