Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 sty 2025, o 14:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 7 lut 2016, o 13:01 
Offline
Nowy

Dołączył(a): 20 gru 2015
Posty: 19
Pomógł: 0

Witam, zwracam się do kolegów o wyjaśnienie znaczenia specyfikatora "volatile", "extern" oraz "static"?
Poza tym co oznacza słowo "optymalizacja" zmiennej?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2016, o 13:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 mar 2014
Posty: 356
Lokalizacja: Pruszków
Pomógł: 15

Witaj w BB jest to fajnie wyjaśnione.
Na temat volatile jest na blogu http://mirekk36.blogspot.com/2011/08/test.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2016, o 13:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

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.html

Zdecydowanie 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 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Majestic-12 [Bot] i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO