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