C 中stdafx h的作用體會

2021-08-14 14:05:39 字數 2147 閱讀 6047

stdafx.h的作用體會

當使用visual c++時,總是包含了標頭檔案stdafx.h,卻不知道是幹什麼用的.

哈哈,今天查詢了相關資料,解釋如下:

比如:#include // mfc core and standard components

#include // mfc extensions

#include // mfc ole classes

#include // mfc ole dialog classes

#include // mfc automation classes

......

等等,這樣,就方便多了.所以,stdafx.h是自動生成的.這就使得使用者在開發中不必在每乙個cpp檔案中都煩瑣的include標頭檔案了,而且,維護起來也方便.

在生成stdafx.h標頭檔案的同時,也生成了stdafx.cpp原始檔,該原始檔只包含#include "stdafx.h"語句,這是在編譯過程中第乙個被編譯的檔案,編譯的結果儲存在乙個名為stdafx.pch的檔案裡。 (副檔名pch表示預編譯標頭檔案。)當visual c++編譯隨後的每個.cpp檔案時,它閱讀並使用它剛生成的.pch檔案。 visual c++不再分析windows include檔案,除非使用者又編緝了stdafx.cpp或stdafx.h。

看了這樣的講解,我馬上就實驗了一下,自己新建立乙個windows視窗專案,很快,就生成了stdafx.cpp和stdafx.h.

並且,在主原始檔form1.cpp中,就include此標頭檔案stdafx.h.

補充:沒有函式庫,只是定義了一些環境引數,使得編譯出來的程式能在32位的作業系統環境下執行。

windows和mfc的include檔案都非常大,即使有乙個快速的處理程式,編譯程式也要花費相當長的時間來完成工作。由於每個.cpp檔案都包含相同的include檔案,為每個.cpp檔案都重複處理這些檔案就顯得很傻了。

4當visualc++編譯stdafx.cpp檔案時,它將結果儲存在乙個名為stdafx.pch的檔案裡。(副檔名pch表示預編譯標頭檔案。)

5.當visualc++編譯隨後的每個.cpp檔案時,它閱讀並使用它剛生成的.pch檔案。

visualc++不再分析windowsinclude檔案,除非你又編緝了stdafx.cpp或stdafx.h。

(還要說一句,microsoft並非是首先採用這種技術的公司,borland才是。)在這個過程中你必須遵守以下規則:

1.你編寫的任何.cpp檔案都必須首先包含stdafx.h。

2.由於.pch檔案具有大量的符號資訊,它是你的工程檔案裡最大的檔案。

如果你的磁碟空間有限,你就希望能將這個你從沒使用過的工程檔案中的.pch檔案刪除。執行程式時並不需要它們,且隨著工程檔案的重新建立,它們也自動地重新建立

stdafx.h檔案中包含了一些必要的標頭檔案(如afxwin.h),對應於stdafx.h有乙個stdafx.cpp檔案,該檔案內包含一句: #include "stdafx.h",其作用是令編譯器編譯出乙個stdafx.obj預編譯標頭檔案(pre-compile header,需要設定編譯選項),在下次編譯時以降低總的編譯時間。若使用classwizard定義新類,則有可能在stdafx.h中增加新的 include files。比如,若選用mfc template classes,stdafx.h中便會增加:#include 。

注:1.afxwin.h是mfc程式設計的必需檔案,其中包含如cstring,cedit類執行所必需的標頭檔案,最好保證該句在標頭檔案首行;它還會呼叫windows.h,改標頭檔案包含有資料型別的定義、api入口點定義和其它有用的引數資訊;

3.#define win32_leanand_mean,在windows的標頭檔案中拒絕接受mfc類庫,以加速編譯時間;

5.#if _msc_ver > 1000                      //表示版本

#pragma once                           // 避免標頭檔案之間的相互包含

#endif // _msc_ver > 1000

6.建立了乙個新的空的工程,專案中的stdafx.cpp使用的是create precompiled header (/yc),而其它.cpp是用的use precompiled header (/yu),並且create/use pch trhough file都是stdafx.h

**:

C 中stdafx h的意思

當使用visual c 時,總是包含了標頭檔案stdafx.h,卻不知道是幹什麼用的。比如 include mfc core and standard components include mfc extensions 這樣就方便多了,所以stdafx.h時自動生成的。這就使得使用者在開發中不必在每...

stdafx h標頭檔案的作用

沒有函式庫,只是定義了一些環境引數,使得編譯出來的程式能在32位的作業系統環境下執行。windows和mfc的include檔案都非常大,即使有乙個快速的處理程式,編譯程式也要花費相當長的時間來完成工作。由於每個.cpp檔案都包含相同的include檔案,為每個.cpp檔案都重複處理這些檔案就顯得很...

stdafx h標頭檔案的作用

stdafx.h標頭檔案的作用 stdafx.h檔案中包含了一些必要的標頭檔案 如afxwin.h 對應於stdafx.h有乙個stdafx.cpp檔案,該檔案內包含一句 include stdafx.h 其作用是令編譯器編譯出乙個stdafx.obj預編譯標頭檔案 pre compile head...