Headerfiler:
Fil A innholder definisjonen av structen foo.
Fil B inneholder definisjonen av structen bar.
foo har en peker til en struct av type bar.
B inneholder funksjonsprototyper som har structer av type foo som
argumenter/returverdier .
A må inneholde #include "B" for å definere foo som har medlemmer av type
bar.
B må inneholde #include "A" for å definere typene som er argumenter i
funksjoner
Hvordan unngår jeg en uendelig loop?
Prøvde litt med #defines og #ifndef, men det ble ikke pent :)
--
Daniel Zinsli
University of Bergen, Norway
Finger s8...@lstud.ii.uib.no for more info
Daniel Zinsli <s830...@ii.uib.no> writes:
> Har et par grunnleggende problemer her..
>
> Headerfiler:
> Fil A innholder definisjonen av structen foo.
> Fil B inneholder definisjonen av structen bar.
>
> foo har en peker til en struct av type bar.
> B inneholder funksjonsprototyper som har structer av type foo som
> argumenter/returverdier .
>
> A må inneholde #include "B" for å definere foo som har medlemmer av type
> bar.
> B må inneholde #include "A" for å definere typene som er argumenter i
> funksjoner
>
> Hvordan unngår jeg en uendelig loop?
>
> Prøvde litt med #defines og #ifndef, men det ble ikke pent :)
Gjensidige avhengigheter er _ikke_ pent. Dersom du kan,
reorganiser opplegget ditt så du unngår hele problemstillingen.
Hvis det ikke går, bruk void-pekere, og
#ifndef __HEADERFIL_H
#include "headerfil.h"
#endif
BTW: no.c er død. Followup satt til no.it.programmering.c
--
-jk
>
> Har et par grunnleggende problemer her..
>
> Headerfiler:
> Fil A innholder definisjonen av structen foo.
> Fil B inneholder definisjonen av structen bar.
>
> foo har en peker til en struct av type bar.
> B inneholder funksjonsprototyper som har structer av type foo som
> argumenter/returverdier .
>
> A må inneholde #include "B" for å definere foo som har medlemmer av type
> bar.
> B må inneholde #include "A" for å definere typene som er argumenter i
> funksjoner
>
> Hvordan unngår jeg en uendelig loop?
Ved a bruke struct-pekere:
A:
struct bar;
struct foo {
struct bar *pointer;
};
B:
struct foo;
struct foo *funksjon(struct foo *) { /* masse fin kode her */ }
struct bar { int y; }
- Finn Arne