chyba kolega czegoś nie zrozumiał jeśli chodzi o register i static.
Po pierwsze - jak można myśleć, że jakaś inna dyrektywa niż static - zadziała tak jak static ? No to troszkę byłoby bez sensu, więc zapomnij o takich rzeczach. Jak chcesz mieć zmienną statyczną to TYLKO I WYŁĄCZNIE specyfikator static.
Specyfikator "register" nie wymusza żadnej super szybkości ani nie jest NAKAZEM dla kompilatora w przeciwieństwie do "static" który jest NAKAZEM dla kompilatora. REGISTER to tylko i wyłącznie PROPOZYCJA dla kompilatora aby umieścił tę zmienną w jakimś wolnym rejestrze zamiast pamięci RAM - jeśli akurat jest wolny rejestr pod ręką. A jeśli nie ma to dyrektywa nic ci nie pomoże ... kompilator zrobi co chce, trzeba mieć tego świadomość .... Kompilator co najwyżej jeśli sam miałby powiedzmy ze dwie zmienne i zastanawiałby się którą wrzucić do rejestru - to gdyby zobaczył przy twojej specyfikator "register" to przestałby się zastanawiać i wrzucił twoją zmienną spośród tych dwóch
to tak obrazowo mówiąc oczywiście.
Oczywiście nie da się połączyć tych dwóch specyfikatorów - ale chyba teraz po tym opisie rozumiesz sam - że brzydko mówiąc "daj sobie na luz" z tym specyfikatorem register i wszystko będzie działać jak się należy. Co więcej - wcale to nie oznacza, że kompilator nigdy tej zmiennej nie wrzuci do rejestru jeśli będzie wolny pod ręką. Poza tym to zawsze można sprawdzić szybko w pliku asemblerowym po kompilacji *.lss
_________________
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 ]