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



Teraz jest 3 gru 2024, o 11:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 22 mar 2015, o 19:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1031
Lokalizacja: Trójmiasto
Pomógł: 190

Witam

Analizując kod do rozdziału napotykamy na funkcję *int_to_str. Sama budowa funkcji jest zrozumiała natomiast zastanawia mnie gwiazdka przed nazwą funkcji. Jako że gwiazdka - to kombinuję że ma to coś wspólnego ze wskaźnikami. Tylko nie rozumiem co ma na celu w tym kontekście... W BB dotychczas nie natrafiłem na rozwinięcie tematu wskaźników do funkcji poza wzmianką o ich istnieniu w rozdziale o wskaźnikach. No chyba że coś mi umknęło... :o

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2015, o 20:10 
Offline
Moderator
Avatar użytkownika

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

xentis napisał(a):
No chyba że coś mi umknęło...

Panie..... umknął ci CAŁY ROZDZIAŁ, duży rozdział i to jeszcze oznaczony ilomaś tam gwiazdkami - gdzie piszę w książce o funkcjach a w szczególności o ich argumentach ale też REZEULTACIE bo o to pytasz ... i o tym że REZULTATEM może być wskaźnik, o tym że jak widzisz zapis typu

char * fun()

to wiaomo od razu, że funkcja zwraca rezultat w postaci wskaźnika typu char. Tylko nie mów - że nie ma o tym w Bluebooku ;) bo jest i to dużo ....

więc proponuję w "W TYŁ ZWROT" i do książki marsz ;) a jak tam kolega czegoś nie zrozumie albo czegoś będzie jeszcze mało to dopyta tutaj i wtedy z PRZYJEMNOŚCIĄ odpowiem/podpowiem

_________________
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: 22 mar 2015, o 21:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1031
Lokalizacja: Trójmiasto
Pomógł: 190

Panie Mirku. Na wstępie muszę zaprotestować.
Rozdział "Funkcje" z owymi gwiazdkami opanowałem myślę w stopniu co najmniej dobrym. Czytałem go kilkukrotnie (jeśli nie kilkunastokrotnie) bo faktycznie na początku nie wszystko złapałem jak trzeba.
Ale co do funkcji z gwiazdką przed nazwą to w tym rozdziela takiego przykładu nie ma, jak i wzmianki o zwracaniu rezultatu jako wskaźnik (bo w sumie rozdział Funkcje znajduje się przed rozdziałem Wskaźniki);
z kolei w rozdziale wskaźniki opisuje Pan o przekazywaniu do funkcji argumentu przez wskaźnik - i powiem że bardzo przystępnie przedstawił Pan to zagadnienie. Natomiast nie znalazłem wzmianki o zwracaniu przez funkcje rezultatu poprzez wskaźnik :( jedynie że można w wyniku działania funkcji zmieniać zmienne bezpośrednio w pamięci.
Funkcja fun() jest w przykładach ale tylko w przypadku przekazywania do funkcji argumentu w postaci wskaźnika.
Jedyny przykład funkcji z gwiazdką to opis możliwości zdefiniowania wskaźnika jako typ void "char * memcopy(........" ale tu opis ograniczony jest jedynie do wyjaśnienia rzutowania typów.
Tak więc jeśli się nie mylę to kod programu z Rozdziału 4.8.2 ADC pomiar różnicowy jest pierwszym wystąpieniem znaku "*" pomiędzy typem zwracanym przez funkcję a samą nazwą funkcji.

mirekk36 napisał(a):
char * fun()

to wiaomo od razu, że funkcja zwraca rezultat w postaci wskaźnika typu char.

No i dla mnie to wystarczy i wszystko wyjaśnia.

Tylko proszę tego posta nie odbierać jako atak malkontenta na Pańską pracę włożoną w napisanie BB, bo nie taki był mój zamiar ;)
Zakup książek wydawnictwa Atnel (bo posiadam również GB) był jak dla mnie trafionym zakupem i mogę z czystym sumieniem powiedzieć że nauka z podręcznikiem w postaci BB jest przyjemna a wiedza dobrze się wchłania 8-)

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 mar 2015, o 21:48 
Offline
Moderator
Avatar użytkownika

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

Po co zaraz protestować ;) ... wystarczy napisać - a rzeczywiście masz rację. Rzeczywiście mogłem poświęcić także temu zagadnieniu kilka słów ale ....

po pierwsze ponieważ zacząłem od funkcji bez wcześniejszego podania wiadomości o wskaźnikach to tam dlatego nie podałem tej informacji a później przy okazji wskaźników nie podałem przykładu w części teoretycznej gdzie funkcja zwraca wskaźnik. Wydało mi się też być może to zbyt oczywiste - że będzie to zrozumiałe od razu przez każdego początkującego. A jak widać mogłem się mylić ...

Na szczęście jednak w części warsztatowej już NA PEWNO pojawia się to zagadnienie i przy okazji UART i przy okazji LCD itp

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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