C++#include 採用尖括號和採用引號的區別
阿新 • • 發佈:2018-12-31
如果你還看一些別的C++教程,那麼你可能很早就發現了,有些書上的#include命令寫作#include <檔名>,但有時候又會出現#include "檔名"。你會很疑惑,到底哪個是對的呢?為什麼要有這兩種不同的寫法呢?
這兩種寫法都是正確的寫法,但是它們卻是有區別的。我們知道C++已經有一些編寫好的標頭檔案(比如標準函式庫等等),它們存放在VC++的Include資料夾裡。當我們使用#include <檔名>命令時,編譯器就到這個資料夾裡去找對應的檔案。顯然,用這種寫法去包含一個我們自己編寫的標頭檔案(不在那個Include資料夾裡)就會出錯了。所以包含C++提供的標頭檔案時,應該使用尖括號。
相反地,#include "檔名"命令則是先在當前檔案所在的目錄搜尋是否有符合的檔案,如果沒有再到Include資料夾裡去找對應的檔案。因此,無論這個檔案是C++提供的還是自己編寫的,使用#include "檔名"命令一定是正確的。這也正是書中本節之前的程式一律使用#include "檔名"命令的原因。
關於標準的尖括號
最新的C++標準中,包含C++提供的標頭檔案並不是寫作#include <檔名>,如#include <iostream.h>的寫法是過時的。正確的寫法是#include <iostream>,並且要使用std名字空間。有些程式中會有using namespace std;就是按照這種標準書寫的。名字空間也稱為名稱空間,主要是用來避免大型程式開發中的標誌符衝突。標準還規定了如何在C++中包含C的標頭檔案,有興趣的讀者可以到網上查閱這些資料。
儘管以上兩種#include命令都可以正確地被VC++識別了,但是它們卻並不符合C++的標準。