文件包含是C預處理程序的另一個重要功能。在程序設計中,通常將一個大的程序分為多個獨立的模塊,由多個程序員分別編程。對於一些公用的符號常量或宏定義等可單獨組成一個文件,在其他文件的開頭用包含命令包含該文件即可使用。這樣可避免在每個文件開頭都去書寫那些公用量,從而節省時間,並減少出錯。
文件包含命令的一般形式為:
#include"文件名"
其中文件名用雙引號括起,也可用“
”括起。
file1.c〖〗#include"file2.c"
源程序Afile2.c〖〗源程序B
在源程序文件名為file1.c的程序中,在“源程序A”的前麵使用了文件包含命令#include"file2.c",經過編譯預處理後,將源程序文件名為file2.c的“源程序B”替換編譯預處理命令#include"file2.c",即放在了“源程序A”的上麵。
file1.c〖〗源程序B
源程序A
在前麵我們已多次用此命令包含過庫函數的頭文件。例如:
#include
#include
文件包含命令的功能是把指定的文件插入該命令行位置取代該命令行,從而把指定的文件和當前的源程序文件連成一個源文件。
對文件包含命令還要說明以下幾點:
(1)一個include命令隻能指定一個被包含文件,若有多個文件要包含,則需用多個include命令。
(2)文件包含允許嵌套,即在一個被包含的文件中又可以包含另一個文件。
(3)使用C語言中的數學函數時應用下列命令行:
#include"math.h"或#include
使用C語言中的字符串函數時應用下列命令行:
#include"string.h"或#include
使用C語言中的字符函數時應用下列命令行:
#include"ctype.h"或#include
使用C語言中的輸入輸出函數時應用下列命令行:
#include"stdio.h"或#include
(1)預處理功能是C語言特有的功能,它是在對源程序進行正式編譯前由預處理程序完成的。程序員在程序中用預處理命令來調用這些功能。
(2)宏定義是用一個標識符來表示一個字符串,這個字符串可以是常量、變量或表達式。在宏調用中將用該字符串替換宏名。
(3)宏定義可以帶有參數,宏調用時是以實參替換形參,而不是“值傳遞”。
(4)為了避免宏替換時發生錯誤,宏定義中的字符串應加括號,字符串中出現的形式參數兩邊也應加括號。
(5)文件包含是預處理的一個重要功能,它可用來把多個源文件連接成一個源文件進行編譯,結果將生成一個目標文件。
(6)使用預處理功能便於程序的修改、閱讀、移植和調試,也便於實現模塊化程序設計。