標頭檔案和原始檔

2021-06-28 04:31:04 字數 1202 閱讀 4637

一.例1

test.h

void show();

test.cpp

#include using namespace std;

void show()

includeproblem.cpp

#include "test.h"

int main()

可以看到:

includeproblem.cpp檔案彙總#include 「test.h」 這句話的作用相當於將test.h在此處展開,即:void show();

而test.h檔案這裡只是show()函式的宣告,我們將定義放在了test.cpp中,並且不需要包含test.h這個標頭檔案也可以。

於是在編譯的時候,編譯器在編譯單元includeproblem.cpp看到了main()中show()的呼叫,卻沒有找到實現,編譯器就會到其他的編譯單元中尋找,最終在

test.cpp檔案中找到了實現,於是就可以鏈結到呼叫處,成功編譯。

二.例2

pimp.h

class pimp

;

test.h

class pimp;

class test

;

test.cpp

#include "test.h"

includeproblem.cpp

#include "test.h"

int main()

這樣test.cpp和includeproblem.cpp 都包含了 test.h,只要test.h中的內容一經修改,就會導致這兩個.cpp重新編譯.  

但是pimp.h中的修改,卻不會導致這兩個.cpp重新編譯,因為我們在test.h使用了:pimp類宣告+pimp類指標變數。避免了這個問題。

如果我們在test.h中修改如下:

#include "pimp.h"

class test

;

如此,當pimp.h變化時,這兩個cpp都要重新編譯。

標頭檔案和原始檔的區別

一 原始檔如何根據 include來關聯標頭檔案 1,系統自帶的標頭檔案用尖括號括起來,這樣編譯器會在系統檔案目錄下查詢。include 2,使用者自定義的檔案用雙引號括起來,編譯器首先會在使用者目錄下查詢,然後在到c 安裝目錄 比如vc中可以指定和修改庫檔案查詢路徑,unix和linux中可以通過...

標頭檔案和原始檔的區別

一 原始檔如何根據 include來關聯標頭檔案 1,系統自帶的標頭檔案用尖括號括起來,這樣編譯器會在系統檔案目錄下查詢。include 2,使用者自定義的檔案用雙引號括起來,編譯器首先會在使用者目錄下查詢,然後在到c 安裝目錄 比如vc中可以指定和修改庫檔案查詢路徑,unix和linux中可以通過...

標頭檔案和原始檔的區別

一 原始檔如何根據 include來關聯標頭檔案 1,系統自帶的標頭檔案用尖括號括起來,這樣編譯器會在系統檔案目錄下查詢。include2,使用者自定義的檔案用雙引號括起來,編譯器首先會在使用者目錄下查詢,然後在到c 安裝目錄 比如vc中可以指定和修改庫檔案查詢路徑,unix和linux中可以通過環...