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



Teraz jest 21 cze 2026, o 14:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 8 lis 2015, o 19:03 
Offline
Nowy

Dołączył(a): 30 paź 2015
Posty: 6
Pomógł: 0

Witam mam pewien problem ze wskaźnikami, otóz chciałbym za ich pomocą móc edytować zmienne automatyczne tj. statyczne w funkcjach. Niestety w niebieskiej książce nie mogę znaleźć jak się do nich dobrać.
Napisałem sobie coś takiego :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W obrębie taj funkcji to działa, problem pojawia się gdy ten adres zmiennej o nazwie statyczna( sprawdzam go w symulatorze) podstawię do wskażnika w fukcji int ( tu już zmiana wartosci nie działa) , jak w takim razie dobrać sie do adresu zmiennej automatycznej w funkcji int czy też może w innej fukcji w innym module.

Pozdrawiam


PROSZĘ POPRAWIĆ KOD ZGODNIE Z ZALECENIAMI FORUM ---> SunRiver



Ostatnio edytowano 8 lis 2015, o 20:11 przez janas1, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2015, o 19:59 
Offline
Moderator
Avatar użytkownika

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

janas1 napisał(a):
chciałbym za ich pomocą móc edytować zmienne automatyczne tj. statyczne w funkcjach

Przede wszystkim, to pewnie masz problemy bo nie do końca może rozumiesz czym różni się zmienna automatyczna(lokalna) od statycznej ... podpowiadam hmm przypominam bo w BB to jest - statyczna mieści się w obszarze zmiennych globalnych i żyje nawet wtedy gdy funkcja nie żyje ;)


No a jak ma działać to co napisałeś, na zewnątrz funkcji skoro twoja zmienna wsk (i o zgrozo) nawet nie będąca wskaźnikiem jest też tylko zmienną lokalną ...

Pomijam już fakt, że odwoływanie się do zmiennych statycznych spoza funkcji nie jest "zdrowym" pomysłem - tzn no można .... w C prawie wszystko się da zrobić dzięki wskaźnikom - ale lepiej całość przemyśleć tak (a na 100% się da) w ten sposób żeby takich cyrkowych sztuczek nie robić ;)

Nie mniej jednak ponieważ uważam, że dla początkującego w dziedzinie wskaźników jest to fajne w sumie ćwiczenie aby lepiej zrozumieć wskaźniki to podpowiadam ;)

- powołaj sobie wskaźnik w obszarze zmiennych globalnych programu, a wewnątrz funkcji przypisz mu adres zmiennej statycznej w tej funkcji - ot cała tajemniczość pryska - i już masz dostęp spoza funkcji do jej zmiennej statycznej ;)

------------------------ [ Dodano po: kilkunastu sekundach ]

inny sposób to można przecież zwrócić ten wskaźnik albo przez rezultat funkcji albo nawet przez argument ;) jak widzisz sposobów w na to jest mnóstwo ;)

_________________
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: 8 lis 2015, o 20:26 
Offline
Nowy

Dołączył(a): 30 paź 2015
Posty: 6
Pomógł: 0

Heh nie była wskażnikiem bo pisałem pierwszy raz tu post i cięzko było mi ogarnąć jak prawidłowo wkleić kod przez co przy przepisywaniu pominełem *.
No tak zrozumiałem, że zyje nawet jak fukcja nie zyje, zrozumiałem tak -automatyczna ponieważ automatycznie jest inicjowana wartosćią zero a statyczna bo - przechowywana jest jej wartosć nawet jak funkcja nie żyje.
W BB jak piszesz o wskaźnikach wpominasz że można edytować te zmienne (faktycznie po doczytaniu str 158 opisywałeś zmienne automatyczne czyli te bez słówka static) a ja wymyśliłem sobie pewnie nie do końca słusznie i pewnie nie jest to najprostrza metoda że użyje zmiennej statycznej żeby przy wywoływaniu fukcji co np 20 ms sprawdzać czy w danej minucie fukcja już się wykonała czy też nie.
Jesli się wykonała to ma czekać na zwiekszenie zmiennej minuta i znów wykonać się przy spełnienieniu tego warunku tylko raz.
Jestem początkujacy i jakoś mi ta zmienna statyczna do tego podeszła.

Dzieki za odpowiedz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lis 2015, o 20:36 
Offline
Moderator
Avatar użytkownika

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

janas1 napisał(a):
automatyczna ponieważ automatycznie jest inicjowana wartosćią zero

No to coś ci się pomyliło ;) tego w książce nie napisałem na pewno

automatyczna (czyli lokalna) NIGDY nie jest inicjowana - trzeba to zawsze zrobić samemu, a statycznej nie trzeba inicjować bo jest automatczynie inicjowana zerem tak jak KAŻDA zmienna globalna ;)

_________________
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: 8 lis 2015, o 20:41 
Offline
Nowy

Dołączył(a): 30 paź 2015
Posty: 6
Pomógł: 0

Ok doczytałem to teraz i faktycznie masz oczywiście racje, dokleiłem sobie automatyczna = automatycznie ustawiana wartością zero, a to oznacza po prostu automatycznie tworzona i "zapominana".



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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