Zobacz, gdybyś miał tylko taką strukturę:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
(bez unii)

... i taką zmienną
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i teraz sobie wyobraź że chciałbyś skasować szybko w jednej pętli for() po kolei wszystkie zmienne w tej strukturze ? to jak ? np tak:
powołujemy sobie zmienną wskaźnikową
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a teraz dokonujemy rzutowania wskaźnikowego
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
ZONK! to nie wychodzi bo kompilator strasznie płacze ... i ma rację boć przecież kasownik to wskaźnik typu uint8_t a wskaźnik &czas jest typu TDATETIME
no ale my wiemy co chcemy dalej zrobić - więc zróbmy rzutowanie - jak ?
hmmm no to co po prawej stronie musi być takiego samego typu jak to po lewej stronie tak ? no to siup!
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
TA DAAA!!! ... kompilator nie płacze - więc zabierzmy się do kasowania ochoczo
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i tym sposobem wyzerowaliśmy wszystkie pola struktury

A co by było gdyby zmienna year była typu uint16_t ? ... żadna tragedia, wtedy pętla wyglądałaby tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
mam nadzieję, że wiesz dlaczego taka różnica ?
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]