AKSELINEK napisał(a):
Deklaracja była zapisana w pliku mk_pcf8583.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a definicja w bliżniaczym pliku mk_pcf8583.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
No i tu jest pies pogrzebany. W tym fragmencie nigdzie nie dałeś deklaracji. UWAGA! Zdefiniowałeś tylko typ strukturalny.
Poprawny kod byłby taki:
1. Plik nagłówkowy:język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
2. Plik źródłowyjęzyk c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Dla 1), poprzez deklarację, informujesz inne moduły, że "gdzieś jest zrobiona definicja zmiennej". W tym przypadku akurat w pliku źródłowym 2)
AKSELINEK napisał(a):
Jeżeli żle zrozumiałem to proszę mnie poprawić, gdzie nie rozumiem co to deklaracja -a definicja zagadnienie dotyczyło jednak tego dlaczego kompilator nie widział zapisu " TDATETIME datetime " a potem go nagle zobaczył??
Cechą charakterystyczną, praktycznie wszystkich początkujących, również tyczy się to mnie

, jest to, że bardzo często im się "wydaje". Nie znając dziedziny, z którą się spotykają, zbyt dogłębnie, nie widzą szczegółów, patrzą przez jakiś pryzmat swoich wyobrażeń, a nie faktów - tak to oceniam

Dochodzą później do takich wniosków: "kompilator nie widział, a teraz widzi".
Kompilator widzi to co mu poda programista, a że początkujący zwykle nie wie co ma podać, to później dochodzi do zrzucania winy na wszystko, tylko nie na siebie. I tu nie chodzi o wiek początkującego, w żadnym wypadku, tylko o doświadczenie w danej dziedzinie.
Mnie się często zdarzają sytuację, że piszę coś w plikach źródłowych, mam jakieś dziwne akcje i już chce zwalać na rąbek u spódnicy, a na koniec okazuje się, że nie pisałem tam gdzie trzeba - nie widziałem całości i wyciągałem zły wniosek.
Teraz ja się rozgadałem

W przeciwieństwie do Mirka, ja wszędzie widzę filozofię

Podsumowując. W podanym wyżej kodzie
nie miałeś deklaracji. Prawdopodobnie pomyliłeś deklarację z definicją typów.
Definicja typu to nie to samo co definicja zmiennej.
Przynajmniej tak to wynika ze wpisu, choć mam wrażenie, że coś Ci ucięło zdanie, po nawiasie "{".