stdafx h標頭檔案解析

2021-05-18 08:33:12 字數 965 閱讀 4606

windows和mfc的include檔案都非常大,即使有乙個快速的處理程式,編譯程式也要花費相當長的時間來完成工作。為避免這種浪費,

,在stdafx.h中新增的是mfc用到的標頭檔案和環境引數

比如:

#include // mfc core and standard components

#include // mfc extensions

#include // mfc ole classes

#include // mfc ole dialog classes

#include // mfc automation classes

......

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

(實際上,我們寫程式的時候也經常有這樣乙個習慣,把經常用到的常量,巨集,函式放到乙個標頭檔案中,stdafx.h的作用和此類似。)

問題:為什麼編寫的任何.cpp檔案都必須首先包含stdafx.h

原因:在cpp檔案的屬性裡的precompiled headers選項中,stdafx.cpp使用的是create precompiled header (/yc),而其它.cpp是用的use precompiled header (/yu),並且create/use pch trhough file都是stdafx.h,也就是說,如果你的cpp檔案不想用預編譯頭,可以更改這個cpp的屬性的precompiled headers選項,不讓它使用預編譯頭即可

VS2008 stdafx h標頭檔案解析

內容如下 一 這是乙個比較常用的c c 雜注,只要在標頭檔案的最開始加入這條雜注,就能夠保證標頭檔案只被編譯一次。pragma once是編譯器相關的,就是說即使這個編譯系統上有效,但在其他編譯系統也不一定可以,不過現在基本上已經是每個編譯器都有這個雜注了。ifndef,define,endif是c...

stdafx h 標頭檔案概述

所謂標頭檔案 預編譯,就是把乙個工程 project 中使用的一些mfc標準標頭檔案 如windows.h afxwin.h 預先編譯,以後該工程編譯時,不再編譯這部分標頭檔案,僅僅使用預編譯的結果。這樣可以加快編譯速度,節省時間。預編譯標頭檔案通過編譯stdafx.cpp生成,以工程名命名,由於預...

stdafx h標頭檔案的作用

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