4 18 C 檔案包含處理

2021-06-28 23:35:20 字數 1747 閱讀 2987

所謂「檔案包含」處理是指乙個原始檔可以將另外乙個原始檔的全部內容包含進來,即將另外的檔案包含到本檔案之中。c++提供了#include命令用來實現「檔案包含」的操作。如在file1.cpp中有以下#include命令:

#include ″file2.cpp″

它的作用見圖4.18示意。

圖4.18

「檔案包含」命令是很有用的,它可以節省程式設計人員的重複勞動。

#include命令的應用很廣泛,絕大多數c++程式中都包括#include命令。現在,庫函式的開發者把這些資訊寫在乙個檔案中,使用者只需將該檔案「包含」進來即可(如呼叫數學函式的,應包含cmath檔案—),這就大大簡化了程式,寫一行#include命令的作用相當於寫幾十行、幾百行甚至更多行的內容。這種常用在檔案頭部的被包含的檔案稱為「標題檔案」或「頭部檔案」。

標頭檔案一般包含以下幾類內容:

對型別的宣告。

函式宣告。

內建(inline)函式的定義。

巨集定義。用#define定義的符號常量和用const宣告的常變數。

全域性變數定義。

外部變數宣告。如entern int a;

還可以根據需要包含其他標頭檔案。

不同的標頭檔案包括以上不同的資訊,提供給程式設計者使用,這樣,程式設計者不需自己重複書寫這些資訊,只需用一行#include命令就把這些資訊包含到本檔案了,大大地提高了程式設計效率。由於有了#include命令,就把不同的檔案組合在一起,形成乙個檔案。

因此說,標頭檔案是原始檔之間的介面。

在#include命令中,檔名除了可以用尖括號括起來以外,還可以用雙撇號括起來。#include命令的一般形式為:

#include 《檔名》

或#include ″檔名″

如:#include

或#include ″iostream″

都是合法的。

二者的區別是: 用尖括號時,系統到系統目錄中尋找要包含的檔案,如果找不到,編譯系統就給出出錯資訊。

有時被包含的檔案不一定在系統目錄中,這時應該用雙撇號形式,在雙撇號中指出檔案路徑和檔名。

如果在雙撇號中沒有給出絕對路徑,如#include ″file2.c″則預設指使用者當前目錄中的檔案。系統先在使用者當前目錄中尋找要包含的檔案,若找不到,再按標準方式查詢。如果程式中要包含的是使用者自己編寫的檔案,宜用雙撇號形式。

對於系統提供的標頭檔案,既可以用尖括號形式,也可以用雙撇號形式,都能找到被包含的檔案,但顯然用尖括號形式更直截了當,效率更高。

在c++編譯系統中,提供了許多系統函式和巨集定義,而對函式的宣告則分別存放在不同的標頭檔案中。如果要呼叫某乙個函式,就必須用#include命令將有關的標頭檔案包含進來。c++的庫除了保留c的大部分系統函式和巨集定義外,還增加了預定義的模板和類。但是不同c++庫的內容不完全相同,由各c++編譯系統自行決定。不久前推出的c++標準將庫的建設也納入標準,規範化了c++標準庫,以便使c++程式能夠在不同的c++平台上工作,便於互相移植。新的c++標準庫中的標頭檔案一般不再包括字尾.h,例如:

#include

但為了使大批已有的c程式能繼續使用,許多c++編譯系統保留了c的標頭檔案,即提供兩種不同的標頭檔案,由程式設計者選用。如:

#include //c形式的標頭檔案

#include //c++形式的標頭檔案

效果基本上是一樣的。建議盡量用符合c++標準的形式,即在包含c++標頭檔案時一般不用字尾。如果使用者自己編寫標頭檔案,可以用.h為字尾。

C檔案包含處理

mian函式中用到多個函式呼叫,f1,f2。最開始的做法是,將f1,f2 都放置在main.c檔案的後面,現把 f1,f2 放在各自的源程式下 f1.c f2.c 通過標頭檔案的方式,將 f1.c f2.c 和main.c聯合起來,或者生成 f1.h f2.h 方式 方法1 編譯成功 home.cp...

C 檔案包含

一.關於iostream.h iostream不加.h在後面 加.h的是舊版本 把iostream作為類,正確使用方法 include using namespace std 或者 include iostream using namespace std 二.include 與 include 1 ...

C語言 預處理指令 檔案包含

感謝 一 基本概念 其實我們早就有接觸檔案包含這個指令了,就是 include,它可以將乙個檔案的全部內容拷貝另乙個檔案中。二 一般形式 1.第1種形式 include 檔名 是系統自帶的 直接到c語言庫函式標頭檔案所在的目錄中尋找檔案 2.第2種形式 include 檔名 一般是使用者自己定義的 ...