C語言之標頭檔案包含問題

2021-07-02 23:01:34 字數 1167 閱讀 4976

c語言之標頭檔案包含問題

**:answer 1:

#include 會將指定檔案的內容插入到源程式檔案中。當使用的格式時,編譯器會從環境變數include所指定的路徑中尋找file-name 檔案,如果沒有定義include,c 編譯器會在指定的路徑中搜尋檔案。如ht-ide3000安裝後,預設include路徑是c:\ht-ide3000\include.在檔案中呼叫晶元標頭檔案用

#include

如果使用「file-name」的格式,則c 編譯器會以指定的方式搜尋file-name 檔案,如果沒有指定路徑,則會從當前所在的路徑中找尋檔案。一般使用者自己定義的標頭檔案要用#include"filename"。如

#include "key.h". 如果寫成#include ,編譯器可能找不到key.h,導致編譯出錯。

answer 2:

< >引用的是編譯器的類庫路徑裡面的標頭檔案

" "引用的是你程式目錄的相對路徑中的標頭檔案

假如你編譯器定義的自帶標頭檔案引用在c:\keil\c51\inc\下面

則#include引用的就是c:\keil\c51\inc\stdio.h這個標頭檔案

不管你的專案在什麼目錄裡,c:\keil\c51\inc\stdio.h這個路徑就定下來了

一般是引用自帶的一些標頭檔案:stdio.h、conio.h、string.h、stdlib.h等等之類的。。

假如你的專案目錄是在d:\projects\tmp\

則#include "my.h" 引用的就是d:\projects\tmp\my.h這個標頭檔案

一般是用來引用自己寫的一些標頭檔案

如果使用" ",它是會先在你專案的當前目錄查詢是否有對應標頭檔案

如果沒有,它還是會在對應的引用目錄裡面查詢對應的標頭檔案

意思就是,使用#include "stdio.h"如果你專案目錄裡面,沒有stdio.h這個標頭檔案,它還是會定位到c:\keil\c51\inc\stdio.h這個標頭檔案的。

總結:

面試的時候這樣回答就可以了:

< >引用的是編譯器的類庫路徑裡面的標頭檔案

" "引用的是你程式目錄的相對路徑中的標頭檔案,在程式目錄的相對路徑中找不到該標頭檔案時會繼續在類庫路徑裡搜尋該標頭檔案。

C語言之標頭檔案包含問題

c語言之標頭檔案包含問題 隨著 越寫越長,乙個原始檔的體制越來越臃腫。於是提倡將 寫到不同的多個原始檔中去。將 寫到多個原始檔中去就會遇到各個原始檔中函式與變數的呼叫規則問題。通常人們習慣性的把巨集定義 結構體 聯合體 列舉 外部變數和外部函式宣告等寫入到頭檔案.h中去,而把函式的宣告 變數定義等寫...

c 標頭檔案相互包含問題

c 中標頭檔案互相包含經常會出現編譯錯誤.示例 如下 h ifndef a h define a h include b.h includeusing namespace std class a endif a h a.cpp include a.h a a a a int a getvala vo...

c 標頭檔案包含問題 include class

前向宣告概念 forward declaration 在程式中引入了類型別的b.在宣告之後,定義之前,類b是乙個不完全型別 incompete type 即已知b是乙個型別,但不知道包含哪些成員.不完全型別只能以有限方式使用,不能定義該型別的物件,不完全型別只能用於定義指向該型別的指標及引用,或者用...