[問題] 關於Precompiled Header, 會重複compile某些檔的問題
請問各位大大,
最近小弟在嘗試使用Precompiled Header來加速compile的速度,
開發環境 : OS: Windows Vista & Windows XP SP2
DEV:MicroSoft VisualStudio 2005 (VC8)
現在遇到的問狀況是:
理論上:
被包在PCH中的.h檔,應該只會被compile過一次而已...
ex. StdAfx.h : #include <windows.h>
A.cpp : #include "stdAfx.h"
#include <windows.h>
上面這樣的code在compile A.cpp時,windows.h連進都不會進去才對~
但是:
以DirectX SDK的 streams.h為例子,
當程式為 Stdafx.h : #include <streams.h>
A.cpp : #include "StdAfx.h"
#include <streams.h>
這樣的code在compile時,卻會出現 STREAMS.H included TWICE 的訊息
請問為什麼會有這樣的區別產生呢???
我嘗試過,在streams.h裡加上pragma once之後,
就可以避免streams.h被再次compile狀況~ (我用pragma message的方式測試)
可是像windows.h及vector這幾個黨並沒有pragma once,
跟原本的streams.h一樣只有用 ifndef 來保護,卻可以在PCH下正常被忽略掉~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.124.156
Programming 近期熱門文章
PTT數位生活區 即時熱門文章