2013-07-28 8 views
13

Da quello che ho capito stdafx.h è un file di intestazione precompilato e viene utilizzato per rendere più veloce la compilazione in Visual Studio. Quando creo un progetto C++ in visual studio 2012 c'è anche uno stdafx.cpp. Qualcuno può spiegare la relazione tra stdafx.h e stdafx.cpp?Che cosa è il file stdafx.cpp che viene creato automaticamente in un nuovo progetto C++ in visual studio 2012

+0

Hai risposto prima alla tua domanda. – Rapptz

+0

bene qual è la funzione di stdafx.cpp? – rage

+8

Non è possibile compilare i file .h, è necessario il file .cpp per compilarlo. Quindi è il file precompilato; 'stdafx.cpp' include tutte le intestazioni che vuoi precompilate e le compila. Puoi leggere di più [qui] (http://stackoverflow.com/questions/1552058/how-to-implement-precompiled-headers-into-your-project) – Rapptz

risposta

24

Le intestazioni precompilate possono velocizzare notevolmente la compilazione dei file .cpp nel progetto. Per convenzione, è stdafx.h che # include tutti i file .h che si desidera precompilare. È possibile il nome tutto quello che vuoi, ma il modello di progetto appena Scelte stdafx.h

Ma prima che possa funzionare, ci deve essere uno file cpp che #includes stdafx.he viene compilato prima. Prima di tutti gli altri file .cpp nel tuo progetto. Una volta fatto, il compilatore può usare il file .pch che è stato creato e compilare rapidamente tutti gli altri file .cpp, non dovendo più in effetti includere le intestazioni.

Stdafx.cpp è un file .cpp. Ha un'impostazione diversa da tutti gli altri file .cpp, viene creata with /Yc. L'opzione "Crea file di intestazione precompilata".

Problemi correlati