Bardzo dziękuję za wyczerpującą pomoc, ale chyba nie do końca dokładnie wyjaśniłem moje intencje.
Swoją drogą Panie Mirku uwielbiam styl Pana wypowiedzi - troszkę żartobliwy, troszkę uszczypliwy. Super.
Do rzeczy.
Dobrze rozumiem różnicę pomiędzy deklaracją ("mam zamiar użyć, gdzieś, kiedyś"), a definicją ("tak wygląda moja funkcja/zmienna).
Rozumienie tej różnicy w moim przypadku nie do końca jednak pozwala na prawidłowe zastosowanie w praktyce mojej wizji.
Chciałbym podzielić program (i robić tak w przyszłych projektach) na główną część programu (main.c), na biblioteki (func.c, func.h oraz wiele innych jeśli zaistnieje taka potrzeba) oraz osobny plik/pliki ze zmiennymi globalnymi i ewentualnymi typami (np. strukturalnymi), które mam zamiar używać.
Ważne natomiast jest, aby te nowe typu były również widoczne dla funkcji w pliku func.c.
Gdyby zaistniała potrzeba użycia zmiennej globalnej w jakieś funkcji (tak nie robię, ale to tylko przykład), to po prostu DEFINIUJĘ zmienną w pliku var.c (nie .h jak zasugerowano), a następnie w pliku func.h umieszczam jej DEKLARACJĘ ze słowem extern (w końcu definicja jest w innym pliku).
To samo chciałbym zrobić ze strukturą, której typ sam stworzyłem.
Czy dobrze rozumiem, że powinno to wyglądać tak:
main.c - tutaj mam dostęp do wszystkich typów, zmiennych oraz funkcji
func.h - deklaracje funkcji
func.c - definicje funkcji
var.h - deklaracje typów, deklaracje zmiennych (ze słowem extern?)
var.c - definicje zmiennych (np. int liczba, albo PIDTYP jakas_struktura)
Dopisek:
Zrobiłem tak:
var.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
var.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
func.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
func.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Kompilator zgłosił błąd:
var.c:49:1: error: unknown type name 'PIDTYPE'