ciscoc napisał(a):
zwracam się do kolegów o wyjaśnienie znaczenia specyfikatora "volatile", "extern" oraz "static"?
Tak jak kolega wyżej napisał, przede wszystkim polecam książkę:
http://atnel.pl/mikrokontrolery-avr-jezyk-c.htmlZdecydowanie warto od niej zacząć i ona wyjaśnia te ale również mnóstwo innych rzeczy ... a ucząc się na wyrywki zwykle i tak będziesz miał z tym problem. O ile kolega wyżej odesłał cię już do wyjaśnienia volatile na bloga to ja w skrócie napiszę, że
extern to specyfikator, który potrzebny jest do DEKLARACJI zmiennych (DEKLARACJI a nie definicji zmiennych a to duża różnica)
static to specyfikator, który ma dwa różne znaczenia w zależności od tego do czego się go zastosuje. Jeśli do funkcji, to będzie on oznaczał, że funkcja jest lokalna i będzie inaczej optymaplizowana w procesie kompilacji (zwykle lepiej), umożliwia też na odseparowanie wybranych funkcji bibliotecznych tak aby nie były dostępne dla użytkownika (gdy zajdzie taka potrzeba). Drugie znaczenie ma wtedy gdy się go wykorzystuje ze zmiennymi ale tu także ma jakby dwa znaczenia. Jedno w aspekcie zmiennych globalnych w ramach pliku, które przestaną być globalnymi zmiennymi dla projektu, z drugiej zaś strony to co bodajże NAJWAŻNIEJSZE to specyfikator static w odniesieniu do zmiennych lokalnych (wewnątrz funkcji) powoduje, że zaczynają one działać na zasadzie zmiennych globalnych żyją przez cały czas życia programu, w odróżnieniu od lokalnych które są powoływane tylko na czas życia funkcji a przy wyjściu tracone są bezpowrotnie ... Długo można byłoby tu pisać o tym jeszcze i dlaczego i w jakich sytuacjach jest to ważne - no ale - właśnie to opisałem obszernie w książce do której link podałem na początku.
_________________
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 ]