Envolver #incluye en # ifndef's - ¿agrega algún valor?

He heredadoC/ C ++ código base, y en una serie de archivos .cpp la#include las directivas están envueltas en # ifndef's con los encabezados single single include#define.

por ejemplo

<code>#ifndef _INC_WINDOWS
#include <windows.h>
#endif
</code>

y windows.h se parece a

<code>#ifndef _INC_WINDOWS
#define _INC_WINDOWS
...header file stuff....
#endif // _INC_WINDOWS
</code>

Supongo que esto se hizo para acelerar la compilación / preproceso del código.

Creo que es fea y una optimización prematura, pero como el proyecto tiene un tiempo de compilación de 5 minutos desde que está limpio, no quiero empeorar las cosas.

Entonces, ¿la práctica agrega algún valor o acelera las cosas? ¿Está bien limpiarlos?

Actualización: el compilador es MSVC (VS2005) y la plataforma es Win32 / WinCE

Respuestas a la pregunta(2)

Su respuesta a la pregunta