• 文章
  • “stdafx.h” 的使用
釋出
2013年6月18日 (最後更新: 2013年6月18日)

“stdafx.h” 的使用

評分: 3.8/5 (1222 票)
*****
這是我的第一篇文章,請將其視為一篇新的文章。

根據定義,“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++ 選項 -> 預編譯頭中找到並選擇“預編譯頭使用”為“否”,來停用專案設定中的預編譯頭。
就是這樣。
盡情享受吧 :)