這是我的第一篇文章,請將其視為一篇新的文章。
根據定義,“Stdafx.h” 是一個預編譯標頭檔案。
預編譯 這個詞意味著這個標頭檔案是預先編譯過的(一旦編譯完成,就不需要再次編譯了)。
預編譯標頭檔案
stdafx.h 主要在 Microsoft Visual Studio 中使用,讓編譯器知道哪些檔案已經編譯過,不需要從頭開始編譯。
例如
如果你包含以下 Windows 標頭檔案
程式碼
1 2 3 4 5 6 7 8
|
#include <windows.h>
#include <tchar.h>
int main()
{
//your code
return 0;
}
|
編譯器總是會從頭開始編譯這些標頭檔案。
但是,如果你在這些包含之前包含 #include "stdafx.h",那麼編譯器將從 stdafx.h 中找到已編譯的標頭檔案,而不會從頭開始編譯。但是,如果編譯器在 stdafx.h 中找不到任何已編譯的標頭檔案,那麼它將首先編譯這些檔案,然後將其編譯版本儲存在 stdafx.h 中。這樣就可以在下次編譯時使用。
程式碼
1 2 3 4 5 6 7 8 9
|
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
int main()
{
//your code
return 0;
}
|
它的好處是什麼?
減少編譯時間。
減少不必要的處理。
所以結論是,在你實際使用其他標頭檔案(如 Windows 標頭檔案)的地方使用 #include "stdafx.h"。否則,就沒有必要使用 stdafx.h。這並不意味著你要從專案中移除它,但你可以透過選擇檔案(在你不需要 stdafx.h 的地方),然後轉到其屬性,在 C++ 選項 -> 預編譯頭中找到並選擇“預編譯頭使用”為“否”,來停用專案設定中的預編譯頭。
就是這樣。
盡情享受吧 :)