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



Teraz jest 28 lut 2025, o 22:38


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 4 mar 2013, o 00:13 
Offline
Nowy

Dołączył(a): 28 lut 2013
Posty: 17
Pomógł: 0

Mam pytanie, trochę za proste ale mnie nurtuje.
Widzę że operator * jest używany dość "luźno" przy definiowaniu wskaźnika. Mam czasami problem, ze zrozumieniem, czy w programie
został użyty w kontekście adresowania wskaźnika czy może mnożenia. Na początku myślałem że zapis *wskaźnik to co innego niż * wskaźnik (chodzi mi o tą spację). Ale widzę że czasami piszący program używają spacji a to nadal wskaźnik do adresu.
Możecie mi wyjaśnić jak do tego tematu podejść?. I w sumie to do operatora wyciągania adresu też by się to odnosiło (&).
A na koniec.. P. Mirku, dziękuję ze książki i fajne podejście do tematu. Książki są napisane w fajny sposób i wyjaśniają wiele nieścisłości które w innych są nie wyjaśnione. Szkoda tylko że nie (a może celowo) nie odnosi się Pan do sytuacji C<>ASM. Wtedy ludzie którzy piszą programy w ASM-ie od razu wiedza o co chodzi (szczególnie ze wskaźnikami i tablicami). Niestety ASM powoduje że programy w C piszę podobnie (krok po kroku) i muszę się tej cechy pozbyć:).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2013, o 08:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 gru 2012
Posty: 147
Lokalizacja: Zadupie/Wrocław
Pomógł: 6

Operator mnożenia jest dwuargumentowy z łącznością lewostronną, natomiast operator *, oznaczający tworzenie wskaźnika, jest operatorem jednoargumentowym z łącznością prawostronną. Co to oznacza?

Jeśli po lewej stronie operatora * znajduje się zmienna/wartość/stała liczbowa, to wówczas kompilator traktuje gwiazdkę jako operator mnożenia. Jeśli po lewej stronie "nic" nie ma, natomiast zmienne/stałe/nazwy zmiennych/cokolwiek znajdują się po prawej stronie - wówczas dla kompilatora jest to operator wskaźnika.

To tyle i tylko tyle - innej filozofii za bardzo nie da się wymyślić (chyba, że się mylę, to poprawcie ;) ). Ze wskaźniekiem wyłuskania jest podobnie. Kompliator rozgląda się w lewo, prawo, znowu w lewo i podejmuje odpowiednią decyzję o znaczeniu operatora "&".

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2013, o 09:22 
Offline
Moderator
Avatar użytkownika

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

No kolega wyżej podał prześliczny opis - więc w tym zakresie nic dodać nic ująć.

Natomiast odnośnie "odnoszenia" się do sytuacji C<>ASM jak pytał autor - to wręcz świadomie tego nie robiłem i nie będę nawet robił bo słusznie się domyślasz - że próba porównywania języka C do innego języka "tak wprost" może tylko wprowadzić chaos :( .... mamy nawet przykład tu na forum, gdzie pewien kolega asemblerowiec już od dłuższego czasu nie może sobie poradzić ze zrozumieniem wskaźników do funkcji w pamięci FLASH bo próbuje sobie to podglądać w asemblerze - i zaczyna wyciągać niewłaściwe wnioski. Podobnie było niedawno z innym kolegą, który próbował usilnie porównywać C z Bascomem ....

Pomimo to nie twierdzę, że nie warto znać asemblera, wręcz odwrotnie WARTO! .... przyda się bowiem do np tworzenia czasami (choć może rzadko albo prawie wcale) wstawek asemblerowych - wtedy jego znajomość będzie JAK ZNALAZŁ. Więcej przyda się jego znajomość do lepszej oceny mocno czaso-zależnych procedur, które czasami też musimy specjalnie optymalizować.

I o tym tzn o wstawkach asemblerowych na pewno jeszcze i napiszę w kolejnej książce i zrobię poradnik video - bo warto. Ale mówię - po prostu wstawki ....

_________________
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: 4 mar 2013, o 22:05 
Offline
Nowy

Dołączył(a): 28 lut 2013
Posty: 17
Pomógł: 0

Dziękuję krokodyl1220!. Wszystko jasne i zrozumiałe. Wskaźniki faktycznie mącą w programie ale widać ich potęgę i właściwie... bez nich kod czasami byłby o wiele większy i "głupawy". Myślę że książka i wskaźnikach i kombinacjach na bitach bardzo się przyda. Tylko że jest problem bo ostatnio zamiast pisać to ja czytam i czytam i....dostałem dziś szkołę programowania Język C i znowu pismo święte do przeczytania :lol: .
Dziękuję!



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO