2011-02-10 16 views
7

¿Qué son exactamente los encabezados precompilados? cuando se usan?Encabezados precompilados

+2

posible duplicado de [Encabezados precompilados] (http://stackoverflow.com/questions/1293538/precompiled-headers). Ver también: [¿Por qué usar encabezados precompilados (C/C++)?] (Http://stackoverflow.com/questions/903228/why-use-precompiled-headers-c-c) –

Respuesta

7

Los encabezados precompilados son una optimización utilizada durante el proceso de compilación.

Básicamente, si compila algo como stdio.h con exactamente las mismas definiciones y entorno, puede suponer con seguridad que el resultado será el mismo cada vez.

Así que el compilador recuerda la versión "compilada" de ese encabezado para que no tenga que volver a hacerlo.

En realidad, tiende a ser el primer grupo de cabeceras que hace la diferencia es así, si cada uno de los archivos de origen se inicia con:

#define XYZZY 42 
#include <stdio.h> 
#include <stdlib.h> 

el primero compila por completo, pero recuerda el estado inmediatamente después esa tercera línea. El siguiente puede simplemente tirar esas tres líneas totalmente y cargar el estado guardado antes de continuar compilando el resto del archivo.

La primera vez que vi esta característica fue en Windows con su archivo de cabecera masivawindows.h y, créeme, que hizo una gran diferencia en los tiempos de construcción en general.

Cuestiones relacionadas