2009-08-11 33 views
17

¿Alguien puede ayudarme a entender #pragma?¿Para qué se utiliza #pragma?

ifndef TARGET_OS_LINUX 
#pragma once 
endif 

¿Qué, cuándo, dónde, por qué, un ejemplo?

Lo anterior es en algún código que estoy refactorización ....

Respuesta

21

#pragma es sólo el prefijo para una característica de su compilador.

En este caso, #pragma once significa que este archivo de encabezado solo se incluirá una vez en un archivo de destino específico. Elimina la necesidad de include guards.

+1

etherything está correcto, salvo que se advierta que #pragmas son extensiones de compilador, no están en Estándar. Será mejor que los evites. – f0b0s

+1

¿No es eso lo que dijo? Característica específica del compilador == extensión del compilador no estándar – jalf

+0

@John - Entonces, ¿dónde puedo obtener una lista de las características específicas del compilador que puedo usar? Estos cambios dependen de GCC e Intel CC, estoy seguro, ¿cuál es la mejor protección para el código portátil? – user147502

5
  • Lo que es protector de la cabecera. Este archivo se incluirá solo una vez.
  • Cuando - en un proceso de compilación
  • por qué - para evitar el doble incluyendo.

"Las protecciones de encabezado son pequeños códigos que protegen el contenido de un archivo de encabezado para que no se incluya más de una vez."