>
> "Mads" <mads.tandrup@gmail.com> wrote in message
> news:1159278968.478468.142660@d34g2000cwd.googlegroups.com...
> Hej
>
> Jeg har to .h filer der gensidig referere til typer i hinanden:
>
> -----foo.h-----
> #ifndef FOO_H
> #define FOO_H
>
> typedef struct { ... } foo_t;
>
> void something(bar_t *arg1);
>
> #endif
> -----------------
>
> -----bar.h-----
> #ifndef BAR_H
> #define BAR_H
>
> typedef struct { foo_t var1 ... } bar_t;
>
> #endif
> -----------------
>
> Når jeg compiler med gcc får jeg fejlen:
> foo.h: error: expected ')' before '*' token
> i linien "void something...".
>
> Kan man lave ovenstående uden at samle type definitionerne i én fil?
Ja
Der er mange muligheder:
1)
Lav en forward erklæring af bar_t i "foo.h":
struct bar_t;
void something(struct bar_t* arg1);
2)
Flyt erklæringen af "void something(bar_t* arg1)" til "bar.h"
3)
Flyt erklæringen af "void something(bar_t* arg1)" til "something.h", der så
inkluderer "bar.h"
Venlig hilsen
Mogens Hansen