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



Teraz jest 17 maja 2026, o 19:05


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 19 cze 2014, o 10:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

witam wszystkich ponownie

kazaliście czytać więc czytam i mam pewien kłopot.....

na stronach 58 i 59 BB są podane przykłady deklaracji i definicji:
zapis "int max(int a, int b)"
raz podany jest jako przykład deklaracji, a raz jako definicji
domyślam się, żeby zapis ten był definicją czyli zajmował dla niej obszar pamięci musi być poprzedzony wyrażeniem
#define

potwierdźcie proszę lub wyprowadźcie mnie z błędu

pozdrawiam

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 10:48 
Offline
Moderator
Avatar użytkownika

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

mczarny napisał(a):
zapis "int max(int a, int b)"
raz podany jest jako przykład deklaracji, a raz jako definicji


no ale kolega chyba żartuje że raz jest przykład pokazany jako deklaracja a raz jako definicja ??? :(

toż wyraźnie jak byk napisane jest w książce

przykład DEKLARACJI:

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


widzisz to wyżej ? średnik na końcu ? - widzisz gdzieś tutaj ciało funkcji czyli to co się w niej znajduje ? no chyba nie widzisz - więc to jest jej DEKLARACJA (czasem zwana nagłówkiem) ....

a dalej na stronie 59 masz

przykład DEFINICJI

spójrz

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


widzisz nawiasy klamrowe i ciało funkcji? jej zawartość ? ... w takim momencie musi być już zarezerwowana pamięć FLASH na kod tej funkcji rozumiesz ? i to jest DEFINICJA


nie ma to NIC WSPÓLNEGO z jakimś tam #define

_________________
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: 19 cze 2014, o 10:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 lis 2013
Posty: 120
Lokalizacja: Koło
Pomógł: 6

Cytuj:
widzisz nawiasy klamrowe i ciało funkcji? jej zawartość ? ... w takim momencie musi być już zarezerwowana pamięć FLASH na kod tej funkcji rozumiesz ? i to jest DEKLARACJA


Chyba definicja miało być :)

_________________
Kompleksowa realizacja ogrodów



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 10:58 
Offline
Użytkownik

Dołączył(a): 22 gru 2012
Posty: 256
Lokalizacja: Rumia
Pomógł: 22

No ja to zrozumiałem w ten sposób, że jak napiszę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to zadeklaruję zmienną "a" ale w nie zostanie zarezerwowana dla tej zmiennej pamięć, czyli jak jej nie użyję z jakiegoś powodu, np roztargnienia ;), to w sumie nic złego się nie stanie.
Natomiast jak napiszę
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to w tym przypadku zdefiniuję zmienną "a" która przyjmie wartość 10, a więc zostanie już dla tej zmiennej zarezerwowana pamięć i jak teraz jej nie użyję, to stracę jakąś ilość pamięci co może w przypadku jednej zmiennej nie jest wielkim problemem, ale jakbym takich zmiennych namnożył a nie wykorzystał to w konsekwencji mogłoby się okazać że zmarnotrawiłem masę pamięci.
Mam nadzieję że dobrze to zrozumiałem.

Co do przykładu jaki Ty opisujesz, to ja na początku też się z tym motałem. W końcu do mnie dotarło, taką mam przynajmniej nadzieję ;) , że gdy chodzi o zmienne to za każdym razem gdy widziałem w książce zapisy
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

lub też inne gdzie nie było przypisanej wartości, to oznaczało że jest to deklaracja. Tak samo z funkcjami, gdy widziałem zapis
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

to utrwalałem sobie że jest to deklaracja funkcji.
W przypadku gdy zmienna ma wartość przypisaną, to jet to już definicja tej zmiennej. A taki 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 definicję funkcji jak i zarazem deklarację tejże funkcji.

_________________
http://www.marcingibas.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 11:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

uint8_t i; zajmie tez miejsce w pamieci tak samo jak uint8_t i = 10; gdyz pierwsza zmienna bez przypisanej przez ciebie wartosci przyjmie wartosc 0.

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 11:16 
Offline
Użytkownik

Dołączył(a): 22 gru 2012
Posty: 256
Lokalizacja: Rumia
Pomógł: 22

No właśnie, teraz zacząłem się nad tym zastanawiać co napisałem, bo przypomniało mi się że zmienne globalne zadeklarowane bez przypisanej wartości, przyjmują zawsze wartość 0.

_________________
http://www.marcingibas.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2014, o 11:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Marcin_G napisał(a):
No właśnie, teraz zacząłem się nad tym zastanawiać co napisałem, bo przypomniało mi się że zmienne globalne zadeklarowane bez przypisanej wartości, przyjmują zawsze wartość 0.

dokladnie jedt tak jak teraz to zrozumiales.

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 cze 2014, o 07:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

no ale kolega chyba żartuje że raz jest przykład pokazany jako deklaracja a raz jako definicja ??? :(

toż wyraźnie jak byk napisane jest w książce


już dobrze - ale nam się autor zbulwersował ;)
przepraszam za zamieszanie - doczytałem
na drugi raz zanim zadam pytanie przeczytam kilka razy :oops:

pozdrawiam autora

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 cze 2014, o 08:40 
Offline
Moderator
Avatar użytkownika

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

mczarny napisał(a):
już dobrze - ale nam się autor zbulwersował


nie zbulwersował ;)

ale właśnie na drugi raz lepiej:

mczarny napisał(a):
na drugi raz zanim zadam pytanie przeczytam kilka razy


Bo tak to później ktoś na forum zobaczy tylko pierwszy post i za chwilę gdzie indziej napisze - że słyszał na forum atnel że w książce niebieskiej źle jest wyjaśniona różnica pomiędzy deklaracją a definicją .... Mało komu będzie chciało się doczytać dalej na forum, że to akurat ty źle doczytałeś

dlatego od razu wyjaśniam wyraźnie i precyzyjnie co i jak

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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