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



Teraz jest 2 kwi 2020, o 01:24


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 26 mar 2020, o 16:35 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 99
Pomógł: 0

Witam
Przepraszam za trywialne zapewne pytanie , ale bardzo bym prosił o wyjaśnienie następującego tematu:
Wyobraźmy sobie że mamy jakiś string:
Składnia: [ Pobierz ] [ Ukryj ]
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:
Składnia: [ Pobierz ] [ Ukryj ]
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"
Składnia: [ Pobierz ] [ Ukryj ]
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ć
Składnia: [ Pobierz ] [ Ukryj ]
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
Składnia: [ Pobierz ] [ Ukryj ]
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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2020, o 17:08 
Offline
Moderator
Avatar użytkownika

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

stała i niezmienna wartość wskaźnika
Składnia: [ Pobierz ] [ Ukryj ]
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
Składnia: [ Pobierz ] [ Ukryj ]
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)

Składnia: [ Pobierz ] [ Ukryj ]
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

_________________
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  
PostNapisane: 26 mar 2020, o 18:32 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 518
Pomógł: 131

mirekk36 napisał(a):
stała i niezmienna wartość wskaźnika - a do tego stała jest wartość na którą wskazuje ten wskaźnik
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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:
Składnia: [ Pobierz ] [ Ukryj ]
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 ;)

_________________
Miksowanie kodu C i ASM przy użyciu GCC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2020, o 18:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 298
Lokalizacja: Gliwice
Pomógł: 27

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:
Składnia: [ Pobierz ] [ Ukryj ]
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?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2020, o 19:12 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 518
Pomógł: 131

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Miksowanie kodu C i ASM przy użyciu GCC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2020, o 20:08 
Offline
Użytkownik

Dołączył(a): 13 mar 2013
Posty: 99
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 mar 2020, o 21:09 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 518
Pomógł: 131

To zależy, jak zadeklarujesz zmienne. Ogólnie to, co umieszczasz we FLASH musi być const. Możliwe są różne kombinacje, np.:
Składnia: [ Pobierz ] [ Ukryj ]
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:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Miksowanie kodu C i ASM przy użyciu GCC



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2020, o 00:03 
Offline
Moderator
Avatar użytkownika

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

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 ;)

_________________
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: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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