¿Por qué mis guardias de compilación no impiden inclusiones de definición múltiple?
Tengo un archivo de encabezado x.h que está incluido en más de un archivo fuente * .c. Este archivo de encabezado tiene algunas variables de estructura definidas.
He puesto la protección de prevención de inclusión múltiple al comienzo del archivo de encabezado como:
#ifndef X_H
#define X_H
...
..
//header file declarations and definitons.
#endif//X_H
Al construir, obtengo errores de enlazador relacionados con múltiples definiciones. Entiendo el problema
¿No protegerá la prevención de inclusión múltiple en la parte superior del archivo de encabezado como lo he hecho, evitará múltiples inclusiones del archivo de encabezado x.h y, por lo tanto, evitará múltiples definiciones de las variables que hay en x.h?
#pragma
una vez no funciona en este compilador en particular, entonces, ¿cuál es la solución? Alguien ha publicadoesta Responde a una pregunta similar. No parece funcionar para mí. ¿Cómo funciona esta solución?