Answer 1:
#include 會将指定檔案的内容插入到源程式檔案中。當使用<file-name>的格式時,編譯器會從環境變量INCLUDE所指定的路徑中尋找file-name 檔案,如果沒有定義INCLUDE,C 編譯器會在指定的路徑中搜尋檔案。如HT-IDE3000安裝後,預設INCLUDE路徑是c:\ht-ide3000\include.在檔案中調用晶片頭檔案用
#include <ht48f50e.h> 如果使用“file-name”的格式,則C 編譯器會以指定的方式搜尋file-name 檔案,如果沒有指定路徑,則會從目前所在的路徑中找尋檔案。一般使用者自己定義的頭檔案要用#include"filename"。如 #include "key.h". 如果寫成#include <key.h>,編譯器可能找不到key.h,導緻編譯出錯。
Answer 2:
< >引用的是編譯器的類庫路徑裡面的頭檔案
" "引用的是你程式目錄的相對路徑中的頭檔案
假如你編譯器定義的自帶頭檔案引用在C:\Keil\c51\INC\下面
則#include<stdio.h>引用的就是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這個頭檔案的。
總結:
面試的時候這樣回答就可以了:
< >引用的是編譯器的類庫路徑裡面的頭檔案
" "引用的是你程式目錄的相對路徑中的頭檔案,在程式目錄的相對路徑中找不到該頭檔案時會繼續在類庫路徑裡搜尋該頭檔案。
#include""
優先從目前目錄裡面找,然後到庫檔案夾裡去
#include <>
直接從庫檔案夾裡面找