ATNEL tech-forum https://forum.atnel.pl/ |
|
Specyfikator "Const" i wskażniki https://forum.atnel.pl/topic22961.html |
Strona 1 z 1 |
Autor: | MisterWhite [ 26 mar 2020, o 16:35 ] |
Tytuł: | Specyfikator "Const" i wskażniki |
Witam Przepraszam za trywialne zapewne pytanie , ale bardzo bym prosił o wyjaśnienie następującego tematu: Wyobraźmy sobie że mamy jakiś string: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Tworzymy do niego wskaźnik wsk: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Dotąd OK. Ale teraz dołączmy do tego specyfikatory "const" język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. I teraz pytanie - czy zapis ten oznacza iż wartością stałą , nie podlegającą zmianie jest wartość wskazywana przez wskaźnik , czyli str[], który musi zawsze zawierać teraz "Name", czy też ,że wartością niezmienną jest wartość samego wskaźnika *wsk i możemy sobie napisać język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. co będzie oznaczać,że wskaźnik dalej będzie wskazywać ten sam adres, natomiast my zmienimy zawartość komórki pod tym adresem. Reasumując - czy zapis język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. oznacza ,że niezmienny jest adres na który wskazuje wskaźnik, czy też stała musi być wartość która jest "wyłuskiwana" przez ten wskaźnik? Pozdr W |
Autor: | mirekk36 [ 26 mar 2020, o 17:08 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
stała i niezmienna wartość wskaźnika język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. stała i niezmienna wartość wskaźnika - a do tego stała jest wartość na którą wskazuje ten wskaźnik język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. (to stosuje się np do tablic wskaźników w PROGMEM) język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. poczytaj sobie na blogu http://mirekk36.blogspot.com/2013/11/ta ... ogmem.html |
Autor: | andrews [ 26 mar 2020, o 18:32 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
mirekk36 napisał(a): stała i niezmienna wartość wskaźnika - a do tego stała jest wartość na którą wskazuje ten wskaźnik Ach, ten pośpiech... Może to się i skompiluje, ale wskaźnik raczej nie będzie stały. Chyba jednak powinno być w nieco innej kolejności: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. ...a na blogu już jest dobrze Wiem, że trochę się czepiam. Pozornie różnica niewielka, a jednak dość istotna |
Autor: | Zealota [ 26 mar 2020, o 18:53 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
aaaaaaa dopiero teraz zakumałem..... Czyli wersja dla tłuków (dla mnie const przed gwiazdką stały wskaźnik, const przed nazwą zmiennej stała wartość? czyli: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. to stała wartość, ale wskaźnik zmienny? Zmianę wskaźnika możemy zrobić, ale wartość przy zainicjowanym wskaźniku (miejscu w pamięci) nie może być zmieniana? |
Autor: | andrews [ 26 mar 2020, o 19:12 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
Autor: | MisterWhite [ 26 mar 2020, o 20:08 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
Wielkie dzięki. Teraz nie sposób się pomylić. Jeszce tylko gwoli ścisłości : Rozumiem ,że obecnie GCC przy umieszczeniu danych we flashu wymaga zarówno stałego wskaźnika jak i danych ? Pzdr. W |
Autor: | andrews [ 26 mar 2020, o 21:09 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
To zależy, jak zadeklarujesz zmienne. Ogólnie to, co umieszczasz we FLASH musi być const. Możliwe są różne kombinacje, np.: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. Zmienne umieszczane w RAM nie muszą być const, ale mogą, Nie jest to raczej zalecane w 8-bitowych AVR - pamięci FLASH jest zwykle więcej do dyspozycji, więc to co stałe powinno być we FLASH. Niemniej (przykładowo) można tak: |
Autor: | mirekk36 [ 27 mar 2020, o 00:03 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
andrews napisał(a): Ach, ten pośpiech... andrews - wielkie ukłony - twoje sokole oko zawsze widać na forum ! dziękuję za zwrócenie uwagi oczywiście pisałem na szybko i ... no właśnie. ------------------------ [ Dodano po: 1 minucie ] Zealota napisał(a): to stała wartość, ale wskaźnik zmienny? Zmianę wskaźnika możemy zrobić, ale wartość przy zainicjowanym wskaźniku (miejscu w pamięci) nie może być zmieniana? Dokładnie TAK |
Autor: | gordon10 [ 13 kwi 2020, o 11:52 ] |
Tytuł: | Re: Specyfikator "Const" i wskażniki |
Fajny temat. Przy okazji ja skorzystam i wkleję sobie te przykłady jako komentarz do pliku, bo też mi się zawsze to "merdało" |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |