Witam
Piszę na zajęcia program obsługujący przetwarzanie obrazów. Nie będę za bardzo wdawał się w szczegóły, bo moje pytanie dotyczy samych deklaracji. Mianowicie: program podzielony jest na cztery pliki: komunikacja.h, komunikacja.c, funkcje.h, funkcje.c . Plik komunikacja.c zawiera funkcje typu wczytaj, zapisz do pliku itp, komunikacja.h zawiera nagłówki funkcji. Podobnie plik funkcje.c zawiera ciała funkcji przetwarzających obrazki, zaś funkcje.h zawiara ich nagłówki. W programie jest struktura określona jako
typedef struct {
int wymx, wymy, szarosci;
int **piksele;
} t_obraz;
która przechowuje mój obraz. I teraz tak. W pliku komunikacja.h mam np deklarację:
int maski(t_obraz *obraz1);
Jest to funkcja do której wysyłam cały obrazek i ona coś z nim robi. Żeby kompilator nie krzyczał na mnie, dokłądnie wygląda to tak:
typedef struct {
int wymx, wymy, szarosci;
int **piksele;
} t_obraz;
int maski(t_obraz *obraz1);
W przypadku innego zapisu kompilator wyrzuca błędy o nieznajomości typu t_obraz.
Tak czy inaczej. problem pojawia się, gdy w pliku funkcje.h pojawia mi się deklaracja typu:
int maskam(t_obraz *obraz1, int maska[][3]);
(Maskam to inna funkcja niż maski)
Kompilator wyświetla komunikat o nieznajomości typu t_obraz. Wpisanie:
typedef struct {
int wymx, wymy, szarosci;
int **piksele;
} t_obraz;
int maskam(t_obraz *obraz1, int maska[][3]);
wyświetla masę komunikatów o błędach. Moje pytanie brzmi - w którym miejscu umieścić deklaracji t_obraz, żeby każda kolejna deklaracja funkcji w dowolnym pliku wiedziała co to jest ten t_obraz?
Pozdrawiam