Propósito de stdafx.h [duplicado]

Resuelto ckv asked hace 14 años • 4 respuestas

¿Cuál es el propósito del archivo stdafx.hy qué se entiende por encabezados precompilados ?

ckv avatar Jun 04 '10 23:06 ckv
Aceptado

stdafx.hes un archivo, generado por los asistentes del IDE de Microsoft Visual Studio, que describe archivos de inclusión estándar del sistema y específicos del proyecto que se utilizan con frecuencia pero que casi nunca cambian . Los compiladores compatibles (por ejemplo, Visual C++ 6.0 y posteriores) precompilarán este archivo para reducir los tiempos generales de compilación .

Visual C++ no compilará nada antes del #include "stdafx.h"archivo fuente , a menos que la opción de compilación /Yu'stdafx.h'esté desmarcada (de forma predeterminada); asume que todo el código en la fuente hasta esa línea incluida ya está compilado.

http://en.wikipedia.org/wiki/Precompiled_header

Jorge Ferreira avatar Jun 04 '2010 16:06 Jorge Ferreira

Para ampliar las otras excelentes respuestas:

stdafx.hes el archivo que incluye todos los encabezados utilizados comúnmente para un solo proyecto. Esto incluiría, por ejemplo, todas las definiciones de Windows. Debido a que este archivo incluye tantas cosas, el compilador se vuelve un poco lento al procesarlo. Al precompilarlo, el compilador puede omitir gran parte del procesamiento y reutilizarlo una y otra vez; Siempre que ninguno de los archivos incluidos cambie, el resultado precompilado tampoco necesita cambiar.

El nombre stdafx.hes sólo una convención. Podrías cambiarle fácilmente el nombre a otro si cambiaras todas tus fuentes para incluir el nuevo archivo.

Para producir el archivo de encabezado precompilado real, necesita un archivo fuente en el proyecto que tenga indicadores de compilación especiales para producir una salida precompilada. Por convención, este archivo se llama stdafx.cpp, y si inspecciona la configuración de ese archivo fuente, verá en qué se diferencia.

Mark Ransom avatar Jun 04 '2010 16:06 Mark Ransom