知識點總結:
預處理 以"#"開頭的命令
(1)宏定義 #define ...
(2)文件包含 #include ...
(3)條件編譯 #indef ...
宏定義 #define 標識符 字符串
帶參數的宏定義 #define 宏名(參數表) 字符串
謹慎帶參數的宏定義的副作用,原樣替換,整體替換時要給參數加括號
文件包含
?多文件程序組織
源文件與頭文件的分離
一般頭文件的幾類內容:
對自定義類型的聲明
函數聲明
宏定義
全局變量定義
外部變量聲明
或包含其他頭文件
include命令的兩種形式:
#include <文件名> 文件在系統目錄中
#include "文件名" 文件默認在用戶的當前目錄中
GCC編譯器中的頭文件和庫函數:
條件編譯 :根據需要只編譯程序中的某一部分
常用於對程序的調試中
條件編譯的常用形式:
文件包含中的一個問題(重複包含):
文件包含保護--條件編譯的另一用法(三行)
心得:
預處理—>文件包含—>頭文件—>宏定義—>條件編譯
其中文件包含中包含源文件和頭文件,頭文件又含系統目錄中的頭文件和自定義在當前目錄下的頭文件
要將源文件和頭文件分離,拿什麼樣的內容應該放在頭文件中呢?
宏定義可以是常見的定義符號常量也可以帶參數進行宏定義,特點是原樣替換
條件編譯常用在程序調試中和文件保護中,在自定義的頭文件中條件編譯避免文件重複包含