[問題] 關於Precompiled Header, 會重複compile某些檔的問題

看板Programming作者 (龜速重新整理房間)時間18年前 (2007/04/29 14:49), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
請問各位大大, 最近小弟在嘗試使用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
文章代碼(AID): #16D3_dwy (Programming)
文章代碼(AID): #16D3_dwy (Programming)