複製鏈接
請複製以下鏈接發送給好友

文件包含

鎖定
在C語言中文件包含是指一個源文件可以將另一個源文件的全部內容包含進來。該命令的作用是在預編譯時,將指定源文件的內容複製到當前文件中。文件包含是C語言預處理命令三個內容之一。
中文名
文件包含
外文名
include
類    別
C語言編程
類    型
預處理命令

文件包含含義

圖1很好的表達了"文件包含"的含義,圖1中(a)為文件f1.c,它有一個#include “f2.c”命令,後面跟着文件內容,記為程序1.圖1中(b)為另一個文件f2.c,文件內容以程序2表示。在預編譯時,對要#include命令進行"文件包含"處理,將f2.c的全部內容複製插入到#include “f2.c” 命令處,即f2.c被包含到f1.c中,得到如圖1中(c)所示的結果。在編譯時,將"包含"以後的f1.c(如圖1中(c))作為一個源文件進行編譯處理。

文件包含兩種格式區別

文件包含有兩種格式,分別是:#include "file" 和 #include <file>
這兩格式的區別在於:
1.使用雙引號,系統首先到當前目錄下查找被包含的文件,如果沒找到,再到系統指定的"包含文件目錄"(由用户在配置環境時設置)去找。
2.使用尖括號:直接到系統指定的"包含文件目錄"去查找。
通常使用雙引號比較保險

文件包含文件包含優點

一個大程序,通常分為多個模塊,並由多個程序員分別編程。有了文件包含處理功能,就可以將多個模塊共用的數據(如符號常量和數據結構)或函數,集中到一個單獨的文件中。這樣,凡是要使用其中數據或調用其中函數的程序員,只要使用文件包含處理功能,將所需文件包含進來即可,不必再重複定義它們,從而減少重複勞動和定義不一致造成的錯誤。

文件包含例子

文件F1.c
#define PI 3.1415926

#define R 3

#define S PI*R*R
文件F2.c
#include "F1.c"

#include "stdio.h"

main()

{
    
    float area=0;
 
    printf("area=%f\n",S);

}
在VC++6.0的運行結果為:
area=28.274333

文件包含文件包含特點

文件包含的特點:
① 編譯預處理時,預處理程序將查找指定的被包含文件,並將其複製插入到#include命令出現的位置上
② 常用在文件頭部的被包含文件,稱為“標題文件”或“頭部文件”,常以“h”(head)作為後綴,簡稱頭文件。在頭文件中,除可包含宏定義外,還可包含外部變量定義、結構類型定義等。
③ 一條包含命令,只能指定一個被包含文件。如果要包含多個文件,則要用多條包含命令。例如,文件f1.h中要使用到文件f2.h和文件f3.h的內容,則可在文件f1.h中用兩個文件包含命令分別包含文件f2.h和文件f3.h,即在文件f1.h中定義:
#include "f2.h"
#include "f3.h"
在使用多個#include命令時,順序是一個值得注意的問題。上例中,如果文件f1.h包含文件f2.h,而文件2要用到文件f3.h,則在f1.h中#include定義的順序應該是:
#include "f3.h"
#include "f2.h"
這樣文件f1.c和文件f2.h都可以使用文件f3.h的內容。
④ 文件包含可以嵌套,即被包含文件中又包含另一個文件。例如,文件f2.h中要使用到文件f1.h的內容,文件f3.h要使用到文件f2.h的內容,則可在文件f2.h中用#include "f1.h"命令,在文件f3.h中用#include "f2.h"命令,即定義如下:
文件f1.h:
{
… …
}
文件f2.h:
#include "f1.h"
int max()
{
… …
}
文件f3.h:
#include "f2.h"
main
{
… …
}
#include命令一般用來把C語言提供的標準庫頭文件(如stdio.h、math.h)包含到程序中。程序員也可以自己定義一個頭文件,寫入一些常用的函數原型、宏定義、結構和聯合類型定義等,然後將它包含到程序中。例如:#include "stdio.h" (標準輸入/輸出函數庫)
#include "math.h" (數學函數庫)
#include "stdlib.h" (常用函數庫)
#include "string.h" (字符串處理函數庫)