¿Puedes externar una variable #define en otro archivo?

2 minutos de lectura

avatar de usuario de user1295872
usuario1295872

Por ejemplo abc.c contiene una variable

#define NAME "supreeth"

Puede externalizar la variable NAME en def.c?

  • Una definición es una directiva de preprocesador. Se reemplaza en línea al compilar el código. Deberá definirlo en un archivo de encabezado (incluir).

    – woodleg.as

    29/04/2013 a las 13:35

Avatar de usuario de MOHAMED
MOHAMED

No puede utilizar extern con macro pero si quieres que tu macro sea vista por muchos archivos C

pon tu definición de macro

#define NAME "supreeth"

en un archivo de encabezado como def.h

luego incluye tu def.h en su código C y luego puede usar su macro en su archivo C en todos los demás archivos C si incluye def.h

  • ¿Qué es posible? No hay variable, y el concepto de extern no aplica

    –Keith Thompson

    29 de abril de 2013 a las 14:45

  • No quise decir usar extern. Quiero decir que puede definir su macro en el archivo de encabezado y luego puede verlo desde sus archivos C. puede ser que tenga que ser más específico, actualizaré mi respuesta

    – MOHAMED

    29 de abril de 2013 a las 14:47

en tu codigo NAME no es una variable Es un símbolo de preprocesador, lo que significa que el texto NAME será reemplazado en todas partes en la entrada con la cadena "supreeth". Esto sucede por archivo, por lo que no tiene sentido hablar de que es “externo”.

Si un archivo C en particular se compila sin eso #definecualquier uso de NAME permanecerá como está.

Si usted tiene #define NAME "supreeth" en abc.c, seguramente puede tener una variable externa con el mismo nombre en otro archivo def.c, esto es en lo que respecta al compilador. Si está implicando algún tipo de dependencia entre estos dos, esa dependencia/vinculación no ocurrirá. Obviamente es confuso y una mala idea hacer algo como esto.

¿Ha sido útil esta solución?