pragma once
En los lenguajes de programación C y C++, #pragma once es una directiva del preprocesador no estándar pero con un extenso soporte.Algunos compiladores como GCC incluyen código especial para reconocer y optimizar las protecciones de macros, por lo que no se conseguirá apenas un aumento en la velocidad usando, en este caso, #pragma once.[1] Como el propio compilador es el responsable del funcionamiento de #pragma once, no será necesario que el programador cree nuevos nombres de macros tales como _ABUELO_H_, tal como debería haber hecho en el ejemplo anterior para evitar su repetida inclusión si no hubiera usado #pragma once.Originalmente GCC dio un aviso declarando #pragma once "obsoleto" cuando compilaba código que lo usaba.Sin embargo, desde la versión 3.4 de GCC, el funcionamiento del código #pragma once fue corregido asegurando un funcionamiento correcto con Enlace simbólicos y Enlace duros, con lo que el aviso fue eliminado.