Proba asi:
struct B;
struct A {
struct B *partner;
};
struct B {
struct A *partner;
};
2008/3/19 Carlos Pantelides <[EMAIL PROTECTED]>:
> Gonzalo Merayo:
>
>
> > Tendras que hacer un ifndef distinto para cada
> > archivo. De esa
> > forma se rompe la dependencia ciclica.
>
>
> Muchas gracias por tu respuesta, pero, parece que he
> formulado mal mi pregunta. Los #ifndef los quité del
> ejemplo que envié para concentrar en el problema.
>
> Mi problema es que no sé como romper la dependencia
> cíclica de las definiciones.
>
>
> Según un ejemplo sacado de "Pointers in C" de Reek
> (10.1.6 Incomplete Declarations):
>
> struct B;
>
> struct A {
> struct B *partner;
> };
>
> struct B {
> struct A *partner;
> };
>
>
> Aplicando el ejemplo del libro, llegué a "mas luego"
> que segun lo que comprendo debería compilar sin
> inconvenientes. Y asi lo hace hoy!!! tras un make
> clean.
>
> Aun asi hay algo que no entiendo: la linea marcada con
> /* ### */ no hace diferencia a la hora de compilar y
> en mi comprensión si hace diferencia.
>
>
>
>
> Carlos Pantelides
> ####################### antes #######################
> [main.h]
> #include "cache.h"
> typedef struct {
> Cache * cache;
> } t_api;
>
> ----------------------------------------------------
> [cache.h]
> typedef struct {
> void (*inner_read)() ;
> } Cache;
>
> ####################### luego #######################
> [main.h]
> typedef struct {
> ...
> } t_rec;
> #include "cache.h"
> typedef struct {
> Cache * cache;
> } t_api;
>
>
> -----------------------------------------------------
> [cache.h]
> typedef struct {
> int cache_size;
> void (*inner_read)(t_api *, t_rec *) ;
> } Cache;
>
> ##################### mas luego #####################
> [main.h]
> typedef struct {
> ...
> } t_rec;
>
> struct t_api; /* ### */
>
> #include "cache.h"
>
> struct t_api{
> FILE * imp_file;
> Cache * cache;
> };
> -----------------------------------------------------
> [cache.h]
> typedef struct {
> int cache_size;
> void (*inner_read)(t_api *, t_rec *) ;
> } Cache;
>
>
>
>
>
> ____________________________________________________________________________________
> Looking for last minute shopping deals?
> Find them fast with Yahoo! Search.
> http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion