Wywolanie funkcji z parametrem jako wsk do struktury

0

Siema jest problem.
Otoz porozbijałem program na moduły. Wygląda to tak:

mam plik struktura.h, a w nim dwie strukture typedef

typedef struct {
int a,b;
}ziom; 

w pliku main.c mam:
zalaczone wszystkie pozostale moduly i biblioteki oraz :

ziom wsk; 

Mam plik funkcja.c ( chce ja uruchomic z parametrem jako wskaznik do tej struktury, bo w jej wnetrzu potrzebuje wartosci zapisane w strukturze) Czyli plik funkcja.c wygląda tak :

#include <stdio.h>
                 #include "funkcja.h"
int funkcja (ziom *wsk){ciało funkcji....}
 

Plik funkcja.h wyglada tak :

 int funkcja(ziom *wsk);

Mam problem przy kompilacji pliku funkcja.c
Wyswietla sie taki oto komunikat :

In file included from funkcja.c0:
funkcja.h14: error: unknown type name ‘ziom’

Nie mam pojecia jak to zrobic a musze ogarnac

0

int funkcja (struct ziom *wsk){ciało funkcji....}
Czytaj post niżej.

0

raczej chodzi o brak #include "struktura.h" w pliku funkcja.h.
Można też dodać "forward declaration " (zamiast include) w pliku funkcja.h (to jest rozwiązanie bardziej profesjonalne):

typedef struct ziom;

int funkcja(ziom *wsk);

ale potem w pliku funkcja.c trzeba dodać #include "struktura.h".

0
 

#include <stdio.h>
#include "funkcja.h"
#include "struct.h"
int funkcja (ziom *wsk){ciało funkcji....}

Mialem tak jak teraz napisalem, ( w pliku struct.h jest ten caly typedef struct {zmienne....}ziom;)

PRoblem polega na tym ze najpierw trzeba zalaczyc struct.h a potem funkcja.h inaczej nie działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1