He estado viendo un código como este generalmente al comienzo de los archivos de encabezado:
#ifndef HEADERFILE_H
#define HEADERFILE_H
Y al final del archivo es
#endif
¿Cuál es el propósito de esto?
#pragma
es: activa una función específica del compilador. Aunque #pragma once
es muy ampliamente compatible, no es estándar.
info cpp
o consulte aquí ) dice "no todos los preprocesadores la reconocen, por lo que no puede confiar en ella en un programa portátil". Y GNU cpp optimiza el idioma común y portátil #ifndef
para que sea tan eficiente como #pragma once
.
#ifndef HEADERFILE_H
puede violar el espacio de nombres de la implementación del nombre del encabezado para empezar E
; los identificadores que comienzan con E
y un dígito o letra mayúscula están reservados para <errno.h>
. Sugiero #ifndef H_HEADERFILE
.