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



Teraz jest 12 mar 2025, o 17:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 1 sie 2014, o 14:46 
Offline
Nowy

Dołączył(a): 13 lut 2014
Posty: 4
Pomógł: 0

Witam wszystkich serdecznie. Jako że jest to mój pierwszy post, przedstawię się. Aktualnie jestem studentem wrocławskiej Politechniki,
od niedawna wertującym bluebooka, próbującym swoich sił z AVRami. Cechuje mnie wielka dociekliwość oraz pasja
w zagłębianiu się w mechanizmy działania tego, co wokół nas, dlatego w wolnych chwilach eksperymentuję z fizyką oraz elektroniką analogową :)

Moje pytanie:

Zwracam się z prośbą o wyjaśnienie jak to jest z funkcjami wbudowanymi. Czym właściwie są? W bluebooku funkcja itoa() opisana jest jako funkcja wbudowana. Czy znaczy to, że jest to funkcja której zawsze możemy użyć w swoich projektach korzystając z języka C, niezależnie od tego do czego i gdzie go używamy? Podobnie jak sizeof()?

Moja wątpliwość wynika z tego, że na wikibooks:
http://pl.wikibooks.org/wiki/C/itoa
napisano, że funkcja "nie należy do standardu". Nie rozumiem, co to oznacza.

Tutaj z kolei:
http://www.cplusplus.com/reference/cstdlib/
jest częścią biblioteki cstdlib, której wcale nie dołączyłem do swojego projektu, a funkcja jednak działa w moim AVR'rze poprawnie.

Jak to jest :) ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 15:02 
Offline
Moderator
Avatar użytkownika

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

filip_s napisał(a):
Zwracam się z prośbą o wyjaśnienie jak to jest z funkcjami wbudowanymi. Czym właściwie są? W bluebooku funkcja itoa() opisana jest jako funkcja wbudowana. Czy znaczy to, że jest to funkcja której zawsze możemy użyć w swoich projektach korzystając z języka C, niezależnie od tego do czego i gdzie go używamy? Podobnie jak sizeof()?


Co to są funkcje wbudowane ? Panie kolego ;) to że funkcja może nie należeć do standardu to całkiem coś innego niż to czy jest wbudowana czy nie .... Jak wiesz ... albo może nie - pewnie nie wiesz ale ilości przeróżnych kompilatorów C są ogromne ! ... stąd w jednym może ona być w innym nie

ciebie w tym przypadku powinien interesować kompilator którym się zajmujemy w Bluebooku czyli AVR GCC .... więc jeśli zainstalowałeś zgodnie ze wskazówkami z tej książki sobie WinAVR to na dysku powinieneś mieć pan taki oto folder:

C:\WinAVR-20100110\doc\avr-libc

a w nim plik:

avr-libc-user-manual.pdf

i wtedy nie musisz szaleńczo szukać po internecie podczas gdy masz informacje z PIERWSZEJ RĘKI pod samym nosem ;)

to w tym pliku masz opisane wszystkie WBUDOWANE w ten kompilator funkcje oraz jakie pliki nagłówkowe trzeba dołączyć aby z danej z nich skorzystać. Są one też tam opisane ... jak działają i dlatego też z tego powodu warto sobie wertować i czytać tą dokumentację .... I wiesz co ? i właśnie tam znajdziesz WSZYSTKO i itoa() i nie tylko ... także o ltoa() , atoi() i podobnych na które chciałem aby właśnie czytelnik zwrócił uwagę

a z kolei to że jeśli ci to działa nawet bez dołączenia stosownego pliku nagłówkowego - to się nie dziw, to już tylko "inteligencja" kompilatora, który za użytkownika czasem stara się domyśleć o co mu chodziło i bierze taką funkcję itoa() jaką znajdzie .... Ale skąd ma wiedzieć że ty np nie napisałeś własnej i trzymasz ją we własnym pliku ??? hmmm ? ... wtedy miałbyś babola z racji tego podciągnięcia co ? ;)

Więc przede wszystkim - masz WARNINGA! a przez całą książkę powtarzam - WARNING traktuj jak BŁĄD! ... wtedy nie będziesz miał takich dylematów ;)

_________________
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: 1 sie 2014, o 15:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Dodam tylko, że "sizeof" nie jest funkcją a operatorem języka C/C++ w związku z czym jest on automatycznie wbudowany, zgodnie ze specyfikacją języka ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 15:15 
Offline
Nowy

Dołączył(a): 13 lut 2014
Posty: 4
Pomógł: 0

Ok, błędnie zrozumiałem określenie "wbudowana" - nie ma się ona nijak do języka, jak sądziłem na początku, ale dotyczy kompilatora.
Programuję w Eclipse, rozumiem więc, że dokumentacja dla C w Eclipse powinna rozwiać moje wątpliwości odnośnie funkcji wbudowanych.

Dziękuję też za wskazanie mojego błędu dot. rozróżnienia funkcji od operatora - widocznie w tej kwestii też muszę trochę poczytać :)

Dziękuję za odpowiedzi i biorę się za szukanie dokumentacji.
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 15:19 
Offline
Moderator
Avatar użytkownika

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

filip_s napisał(a):
rogramuję w Eclipse, rozumiem więc, że dokumentacja dla C w Eclipse powinna rozwiać moje wątpliwości odnośnie funkcji wbudowanych.


Nie ma czegoś takiego jak dokumentacja w dla C w Eclipse

musisz też zrozumieć że w tym wypadku ECLIPSE to coś w rodzaju NOTEPAD.EXE z windowsa - tyle że "troszkę bardziej" rozbudowany ;) to edytor panie kolego

a kompilator (toolchain) to masz WinAVR albo w nowszej wersji Atmel Toolchain

zaglądaj coraz częściej na mojego bloga www.mirekk36.blogspot.com

zatem Eclipse nie ma za dużo wspólnego z C, jest to edytor, który można używać do pisania kodu w wielu różnych językach

tu: http://www.nongnu.org/avr-libc/user-manual/FAQ.html

masz też sporo informacji o kompilatorze AVR GCC

_________________
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: 1 sie 2014, o 15:33 
Offline
Nowy

Dołączył(a): 13 lut 2014
Posty: 4
Pomógł: 0

Chwila szukania po napisaniu mojego posta wystarczyła, żebym zaczął podejrzewać, że pewnie znowu napisałem głupotę :D

Sprawdziłem w ustawieniach - jako "current toolchain" mam ustawiony... AVR-GCC Toolchain.
Więc, WinAVR to JEST kompilator, czy ZAWIERA kompilator - AVR GCC?
Ale z tego samego kompilatora (AVR GCC) korzystam też ja, tyle że w innym środowisku - w Eclipse?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 15:41 
Offline
Moderator
Avatar użytkownika

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

WinAVR to właśnie Toolchain (łańcuch narzędzi) tak się określa kompilatory C jako Toolchain ;)

My omawiamy AVR GCC właśnie a są też takie jak: IAR, mikroC, CodeVision i uwierz mi jeszcze dziesiątki innych i to nawet tylko na procki AVR ;)

środowiska czyli edytory to: Eclipse, CodeBlocks, Atmel Studio, Programmers Notepad i jeszcze wiele innych

i w tych środowiskach można wykorzystywać różne kompilatory chociaż akurat tak się składa że w tych które wymieniłem to zdaje się działają tylko z wersjami AVR GCC (choć tu mogę się mylić w szczegółach)

_________________
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: 1 sie 2014, o 15:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2013
Posty: 1154
Lokalizacja: Lublin / Kraków
Pomógł: 72

WinAvr to jest cała paczka różnych rzeczy.
Zawiera kompilator, biblioteki, i inne narzędzia. GCC to jest sam kompilator.

Ecplise po porostu ułatwie prace bo wszystko integruje. Ale oczywiście nic nie sto i na przeszkodzie by źródło tworzyć w notatniku, w vi, pico, czy ee. A później skompilować i zlinkować "z palca" używając linii polecenia z odpowiednimi parametrami.
Zresztą gdy puścisz kompilację w Eclipse, to na konsoli zobaczysz te wszystkie polecenia i parametry które są po kolei wywoływane.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 15:50 
Offline
Nowy

Dołączył(a): 13 lut 2014
Posty: 4
Pomógł: 0

Super, teraz wiem w końcu na czym stoję :)

Także biorę się za czytanie manuala avr-libc, jak mirekk36 w pierwszym poście nakazał.
Myślę, że teraz wszystko mi się rozjaśni.

Dziękuję wszystkim i pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 16:08 

Pomógł: 0

mirekk36 napisał(a):
WinAVR to właśnie Toolchain (łańcuch narzędzi) tak się określa kompilatory C jako Toolchain ;)
Wydaje mi się, że wkradł się mały błąd. Toolchain to zestaw narzędzi. Kompilator jest tylko jednym ze składników łańcucha. Oprócz tego jest jeszcze linker, debugger, asembler, biblioteki, itd...



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 16:12 
Offline
Moderator
Avatar użytkownika

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

wwojtek napisał(a):
mirekk36 napisał(a):
WinAVR to właśnie Toolchain (łańcuch narzędzi) tak się określa kompilatory C jako Toolchain ;)
Wydaje mi się, że wkradł się mały błąd. Toolchain to zestaw narzędzi. Kompilator jest tylko jednym ze składników łańcucha. Oprócz tego jest jeszcze linker, debugger, asembler, biblioteki, itd...


no tak, jeśli chcemy być już tak dokładni to masz rację - wkradł się błąd ;)

_________________
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: 1 sie 2014, o 16:20 

Pomógł: 0

mirekk36 napisał(a):
jeśli chcemy być już tak dokładni
Mirku! Jako chirurg musisz być dokładny - dla dobra Misia :D



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 16:35 
Offline
Moderator
Avatar użytkownika

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

wwojtek napisał(a):
mirekk36 napisał(a):
jeśli chcemy być już tak dokładni
Mirku! Jako chirurg musisz być dokładny - dla dobra Misia :D


No dlatego przyznałem koledze rację :)

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

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