una que programacion principales otro incluir hacer ficheros crear como cabeceras cabecera archivos archivo c++ c-preprocessor

c++ - que - incluir un archivo c en otro



¿Por qué se utilizan#ifndef y#define en los archivos de encabezado de C++? (3)

He estado viendo un código como este por lo general en el inicio de los archivos de encabezado:

#ifndef HEADERFILE_H #define HEADERFILE_H

Y al final del archivo está

#endif

¿Cuál es el propósito de esto?


Esos se llaman guardias #include .

Una vez que se incluye el encabezado, comprueba si se define un valor único (en este caso, HEADERFILE_H ). Luego, si no está definido, lo define y continúa al resto de la página.

Cuando el código se incluye de nuevo, el primer ifndef falla, lo que resulta en un archivo en blanco.

Eso evita la doble declaración de cualquier identificador, como tipos, enumeraciones y variables estáticas.


Esto evita la inclusión múltiple del mismo archivo de encabezado varias veces.

#ifndef __COMMON_H__ #define __COMMON_H__ //header file content #endif

Supongamos que ha incluido este archivo de encabezado en varios archivos. Así que la primera vez que __COMMON_H__ no se define, se definirá y se incluirá el archivo de encabezado.

La próxima vez que se defina __COMMON_H__, no se incluirá de nuevo.


#ifndef <token> /* code */ #else /* code to include if the token is defined */ #endif

#ifndef comprueba si el token dado ha sido #defined antes en el archivo o en un archivo incluido; si no, incluye el código entre él y el #else cierre o, si no hay #else está presente, la instrucción #endif . #ifndef se usa a menudo para hacer que los archivos de encabezado sean idempotentes definiendo un token una vez que se haya incluido el archivo y verificando que el token no se haya establecido al principio de ese archivo.

#ifndef _INCL_GUARD #define _INCL_GUARD #endif