• Domingo 17 de Noviembre de 2024, 19:38

Autor Tema:  Compilacion Condicional y Creacion de Librerias  (Leído 2048 veces)

Rombus

  • Miembro MUY activo
  • ***
  • Mensajes: 105
  • Nacionalidad: ar
    • Ver Perfil
    • http://myspace.com/punkrecycle
Compilacion Condicional y Creacion de Librerias
« en: Jueves 9 de Octubre de 2008, 20:40 »
0
Hola gente!

estoy intentando hacer algo semejante a una libreria.

y averiguando me entere que con esto:

Código: C
  1. #ifndef _stdio_h
  2.     #include <stdio.h>
  3. #endif
  4. #ifndef _stdlib_h
  5.     #include <stdlib.h>
  6. #endif
  7. #ifndef _string_h
  8.     #include <string.h>
  9. #endif
  10. #ifndef _assert_h
  11.     #include <assert.h>
  12. #endif
  13.  
  14. #ifndef FALSE
  15.     #define FALSE 0
  16. #endif
  17. #ifndef TRUE
  18.     #define TRUE !FALSE
  19. #endif
  20.  

evito problemas del tipo "redefinicion de tal cosa", tanto en inclusiones de librerias como de macros.


Existe alguna forma de hacer lo mismo pero contemplando los typedefs?

Código: Text
  1. si el typedef de boolean no esta
  2. typedef char boolean;
  3. fin si
  4.  

gracias por su tiempo!

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Compilacion Condicional y Creacion de Librerias
« Respuesta #1 en: Viernes 10 de Octubre de 2008, 09:52 »
0
si se puede con la directiva #ifndef o #ifdef

Código: Text
  1.  
  2. #ifndef _mytypo
  3. #defien _mytypo
  4. typedef mytypo ...
  5. #endif
  6.  
  7.  

Malik

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Compilacion Condicional y Creacion de Librerias
« Respuesta #2 en: Viernes 10 de Octubre de 2008, 11:55 »
0
Citar
evito problemas del tipo "redefinicion de tal cosa", tanto en inclusiones de librerias como de macros.

Puedes explicarme eso de "problemas del tipo redefinición de tal cosa"?

Gracias de antemano

Rombus

  • Miembro MUY activo
  • ***
  • Mensajes: 105
  • Nacionalidad: ar
    • Ver Perfil
    • http://myspace.com/punkrecycle
Re: Compilacion Condicional y Creacion de Librerias
« Respuesta #3 en: Viernes 10 de Octubre de 2008, 15:54 »
0
Gracias diego.martinez!, la directiva #ifndef al parecer es muy amplia XD


Malik, me explico mejor ;) :


supongamos que quieres crear una libreria que sume numeros, es muy probable que debas incluir la libreria math.h (muy probalbe no, seguro la incluyes), entonces desde tu programa incluyes la stdio.h y la math.h pq tambien quieres realizar algunas operaciones matematicas.

si despues de haber hecho #include <math.h> haces el include de tu libreria, que tambien llama a la math.h sin haberlo premeditado obtendras un error de redefinicion, osea, el compilador te dira que tienes dos funciones con el mismo nombre, algo que es incorrecto.

en cambio si en tu libreria contemplas ese caso preguntando si ya esta incluida la math.h no la incluis, sino si la incluyes.
evitando ese problema.

espero haberme explicado

saludos!