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?
#pragmaes: activa una función específica del compilador. Aunque #pragma oncees muy ampliamente compatible, no es estándar.
info cppo 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 #ifndefpara que sea tan eficiente como #pragma once.
#ifndef HEADERFILE_Hpuede violar el espacio de nombres de la implementación del nombre del encabezado para empezar E; los identificadores que comienzan con Ey un dígito o letra mayúscula están reservados para <errno.h>. Sugiero #ifndef H_HEADERFILE.