La directiva de preprocesador #ifndef
en C se utiliza para evitar la doble inclusión de archivos de cabecera. Esto es fundamental para prevenir errores de compilación como declaraciones múltiples de funciones o variables al incluir un mismo archivo en varias partes del programa.
#ifndef
y cómo funciona?
#ifndef
(abreviatura de "if not defined") verifica si una macro específica no está definida. En combinación con #define
y #endif
, se usa para envolver el contenido de un archivo de cabecera y garantizar que este solo se incluya una vez durante la compilación.
#ifndef
#ifndef IDENTIFICADOR
#define IDENTIFICADOR
// Contenido del archivo de cabecera
#endif
#ifndef
:
1. Definir un identificador único al inicio del archivo con #define
.
2. Encerrar todo el contenido del archivo entre #ifndef
y #endif
.
Supongamos que tenemos un archivo de cabecera llamado mi_header.h
que define una función:
mi_header.h:
#ifndef MI_HEADER_H
#define MI_HEADER_H
void miFuncion();
#endif
main.c:
#include "mi_header.h"
#include "mi_header.h" // Se incluye dos veces intencionalmente
int main() {
miFuncion();
return 0;
}
Sin el uso de #ifndef
, incluir el archivo dos veces podría generar un error de redefinición. Con #ifndef
, la inclusión duplicada se ignora, ya que MI_HEADER_H
ya estará definido tras la primera inclusión.
#ifndef
Jorge García
Fullstack developer