編譯預處理的結果是乙個被刪除了預處理指令僅包含c語言語句的新的原始檔,該檔案才被真正的編譯為目標檔案,編譯預處理都以#開頭,他不是c語言語句,結尾不帶;。c語言的編譯預處理指令主要包括三種:檔案包含、巨集定義、條件編譯
語法
#include
《頭檔名》
#include
"頭檔名"
《頭檔名》表示按標準方式查詢標頭檔案,即到編譯系統指定的標準目錄下去尋找,若沒有找到則報錯。這種格式多用於包含標準標頭檔案
"頭檔名"表示首先到當前工作目錄中查詢標頭檔案,若沒有找到,再到編譯系統指定的標準目錄下去尋找。這種格式多用於包含使用者自定義的標頭檔案。
使用者自定義的標頭檔案中可以儲存使用者自定義的函式原型和資料型別宣告等,對應函式定義以及實現**在與主檔名一直的.c檔案中。
巨集定義將乙個識別符號定義為乙個字串,分為無參巨集指令和有參巨集指令兩種。
無參巨集指令
語法:
#define
《識別符號》 《字串》
注意,巨集定義在處理時僅僅是字串的替換。
帶參巨集指令
語法
#define
《識別符號》 (《引數列表》) 《字串》
例如
#define sub(a,b) a-b
注意,巨集定義僅僅是字串替換,要將替換後的字串代入原式中檢查看到底是怎麼樣運作的
取消巨集定義指令
語法
#undef
《識別符號》
語法1
#ifdef
《識別符號》
《程式段1
>
[#else
《程式段2
>
]#endif
含義是:若《識別符號》已經被定義過,則編譯《程式段1>;否則,編譯《程式段2>。其中,方括號中的部分是可選的。
在多檔案工程程式中,程式**按照一定分類原則被劃分為若干個部分,也稱模組,存放於不同的原始檔中
我們需要遵循以下原則
在c語言中,我們可以通過外部變數和外部函式宣告來實現不同檔案之間共享資訊
extern
《變數名》
;extern
《函式宣告》
;
《變數名》所對應的變數必須是另一檔案的全域性變數
《函式宣告》是另一檔案中的函式原型宣告。
無論是變數還是函式都只能定義一次,但可以在不同檔案中使用extern進行外部宣告。
鷓鴣菜的C語言複習 第一章
馮諾依曼的主要貢獻是提出了程式儲存的思想 另乙個重大貢獻是建議在電子計算機中使用二進位制 馮諾依曼機具備五大基本組成部件,包括 儲存器分為記憶體外存 記憶體外存 暫時的少量的資料和程式 永久儲存的大量的資料 記憶體是計算機中的重要組成部分,記憶體通常由若干個儲存單元組成 進製轉換 大小 1b8bit...
鷓鴣菜的C語言複習 第三章
更具運算物件的個數,運算子可分為三類 c語言的表示式由運算子和運算物件組成,任何乙個表示式都有乙個確定的值,稱為該表示式的值 戳這裡,超詳解 函式名功能 sqrt x 計算x的平方根,x應當 0 fabs x 計算x的絕對值 log x 計算ln x log10 x 計算lg x exp x 計算e...
鷓鴣菜的C語言複習 第六章
陣列中所含的每個資料稱為陣列元素,它們具有相同的資料型別。語法型別識別符號 陣列名 整形常量表示式 其中 型別識別符號表示陣列中元素的資料型別 陣列名是由使用者自定義的識別符號 整形常量表示式是陣列長度,必須是個常量,當然這不是說陣列就只能定義固定長度的,後面章節涉及到申請動態記憶體空間 可以通過下...