2013-07-28 8 views
13

stdafx.hはプリコンパイル済みヘッダーファイルであり、ビジュアルスタジオでのコンパイル時間を短縮するために使用されています。 Visual Studio 2012でC++プロジェクトを作成すると、stdafx.cppもあります。誰かがstdafx.hとstdafx.cppの関係を説明できますか?Visual Studio 2012の新しいC++プロジェクトで自動的に作成されるstdafx.cppファイルとは何ですか?

+0

あなた自身の質問に早く答えました。 – Rapptz

+0

よくstdafx.cppの機能は何ですか? – rage

+8

.hファイルをコンパイルすることはできません。コンパイルするには.cppファイルが必要です。これはあらかじめコンパイルされたファイルです。 'stdafx.cpp'には、プリコンパイルしてコンパイルするすべてのヘッダが含まれています。あなたはもっと読む[ここ](http://stackoverflow.com/questions/1552058/how-to-implement-precompiled-headers-into-your-project) – Rapptz

答えて

24

事前にコンパイルされたヘッダーは、プロジェクト内の.cppファイルのコンパイルを大幅に高速化します。慣習的には、プリコンパイルするすべての.hファイルを#includeするのはstdafx.hです。任意の名前を付けることができますが、プロジェクトテンプレートは単にstdafx.hを選択します。

しかし、それが動作するには、最初に .cppファイルが#includes stdafx.hでコンパイルされている必要があります。プロジェクト内の他のすべての.cppファイルの前。これが完了すると、コンパイラは作成された.pchファイルを使用して、他のすべての.cppファイルをすばやくコンパイルすることができます。ヘッダーを実際に#includeする必要はなくなりました。

Stdafx.cppは、その1つの.cppファイルです。これは、他のすべての.cppファイルとは異なる設定を持っています。with /Ycが組み込まれています。 "プリコンパイル済みヘッダーファイルの作成"オプション。

関連する問題