Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
mARio Forumaš(ica)


Pridružen/a: 12. 10. 2003. (21:49:21) Postovi: (1E)16
Lokacija: Pingvinija...
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
mARio Forumaš(ica)


Pridružen/a: 12. 10. 2003. (21:49:21) Postovi: (1E)16
Lokacija: Pingvinija...
|
Postano: 21:42 ned, 26. 6. 2005 Naslov: |
|
|
[quote="mdoko"]extern nije memorijska klasa. Memorijske klase su auto, static i register.
Funkcije nemaju memorijske klase, ali se moze definirati npr.
[code:1]static void f(int, int){}[/code:1]
to znaci da se ta funkcija moze koristiti samo u source fileu u kojem je definirana, sto moze biti korisno ako npr. imas u jednom source fileu neku pomocnu funkciju koja se koristi samo u tom fileu i ne zelis dopustiti koristenje te funkcije izvan tog source filea.[/quote]
e pa sad. znam ja mdoko da ti mnogo znash i cijenim te mnogo ali sto nije ovo malo sad trcanje pred rudo?!?
uostalom, kako mozesh reci da fje nemaju memorijsku klasu pa jednu mem klasu "nakacis" na fju?!? :)
to je isto kao sto sam danas gledao na dnevniku oko dvojnih drzavljanstava njemacko-rvackih, ono kaze njemacko veleposlanstvo u nas: "Njemačko državljanstvo ne može se oduzeti. No moguće je izgubiti ga [url=http://www.deutschebotschaft-zagreb.hr/hr/home/staatsangehoerigkeit_hr.html]...[/url]"
:)
no, cuj, pishe i u skripti prof. Juraka da uz ove tri (koje ti spominjesh) extern isto tako JEST mem klasa.
no, ti vjerojatno ondak pricas o nekoj drugoj implementaciji standarda, ili???
no, tnx za info, znah to o staticu.
(a cini mi se da se zato bash i upotrebljava to posto su fje po defaultu externe mem klase. ke ne??)
m.m
P.S.
ako ovo ima neke dublje posljedice, tj ako iza svega stoji prica kao jednom onomad sto se postalo, da zapravo nema tu nekog 'chara' vec s sve integeri, tj nema razlike u mem zapisu vec samo u tumacenju, ondak bi bio i vishe nego zahvalan da se to rastumaci, naravno ako postoji volja za tako nesto.
mdoko (napisa): | extern nije memorijska klasa. Memorijske klase su auto, static i register.
Funkcije nemaju memorijske klase, ali se moze definirati npr.
Kod: | static void f(int, int){} |
to znaci da se ta funkcija moze koristiti samo u source fileu u kojem je definirana, sto moze biti korisno ako npr. imas u jednom source fileu neku pomocnu funkciju koja se koristi samo u tom fileu i ne zelis dopustiti koristenje te funkcije izvan tog source filea. |
e pa sad. znam ja mdoko da ti mnogo znash i cijenim te mnogo ali sto nije ovo malo sad trcanje pred rudo?!?
uostalom, kako mozesh reci da fje nemaju memorijsku klasu pa jednu mem klasu "nakacis" na fju?!?
to je isto kao sto sam danas gledao na dnevniku oko dvojnih drzavljanstava njemacko-rvackih, ono kaze njemacko veleposlanstvo u nas: "Njemačko državljanstvo ne može se oduzeti. No moguće je izgubiti ga ..."
no, cuj, pishe i u skripti prof. Juraka da uz ove tri (koje ti spominjesh) extern isto tako JEST mem klasa.
no, ti vjerojatno ondak pricas o nekoj drugoj implementaciji standarda, ili???
no, tnx za info, znah to o staticu.
(a cini mi se da se zato bash i upotrebljava to posto su fje po defaultu externe mem klase. ke ne??)
m.m
P.S.
ako ovo ima neke dublje posljedice, tj ako iza svega stoji prica kao jednom onomad sto se postalo, da zapravo nema tu nekog 'chara' vec s sve integeri, tj nema razlike u mem zapisu vec samo u tumacenju, ondak bi bio i vishe nego zahvalan da se to rastumaci, naravno ako postoji volja za tako nesto.
|
|
[Vrh] |
|
mdoko Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol: 
Lokacija: Heriot-Watt University, Edinburgh
|
Postano: 18:53 pon, 27. 6. 2005 Naslov: |
|
|
[quote="mARio"]
e pa sad. znam ja mdoko da ti mnogo znash i cijenim te mnogo ali sto nije ovo malo sad trcanje pred rudo?!?
[/quote]
Nije. :wink:
[quote]
uostalom, kako mozesh reci da fje nemaju memorijsku klasu pa jednu mem klasu "nakacis" na fju?!? :)
[/quote]
Keyword static kada se koristi za funkciju ima drugacije znacenje nego kada se koristi za varijable. Za varijable znaci da ce varijabla imati static memorijsku klasu, a za funkcije ima gore opisano znacenje. Pri izradi standarda nije se zeljelo komplicirati uvodjenjem dodatnog keyworda, pa zato mozes static "nakaciti na funkciju".
[quote]
no, cuj, pishe i u skripti prof. Juraka da uz ove tri (koje ti spominjesh) extern isto tako JEST mem klasa.
no, ti vjerojatno ondak pricas o nekoj drugoj implementaciji standarda, ili???
[/quote]
Evo objasnjenja za extern:
Kada deklariras varijablu npr. [code:1] int i;[/code:1] zapravo si je i definirao, tako da ako u vise source fileova zelis imati istu globalnu varijabu, onda je u jednom i samo jednom fileu mozes definirati (svaka definicija je ujedno i deklaracija), a u ostalima je moras samo deklarirati, jer bi inace dobio compile time error radi redefinicije varijable. To radis sa [code:1]extern int i;[/code:1], sto kompajleru daje do znanja kojeg je tipa varijabla i, te da je ona definirana u nekom drugom source fileu.
Kod funkcija je jednostavno razlikovati definiciju i cistu deklaraciju (prototip) tako sto definicija ima tijelo funkcije, a prototip ga nema. Radi toga je svaka deklaracija funkcije po defaultu extern, pa to nije potrebno (iako se moze) navoditi.
Dakle extern (za razliku od auto, static i register) ne govori o nacinu smjestaja varijable u memoriji, pa to [b]nije[/b] memorijska klasa.
mARio (napisa): |
e pa sad. znam ja mdoko da ti mnogo znash i cijenim te mnogo ali sto nije ovo malo sad trcanje pred rudo?!?
|
Nije.
Citat: |
uostalom, kako mozesh reci da fje nemaju memorijsku klasu pa jednu mem klasu "nakacis" na fju?!?
|
Keyword static kada se koristi za funkciju ima drugacije znacenje nego kada se koristi za varijable. Za varijable znaci da ce varijabla imati static memorijsku klasu, a za funkcije ima gore opisano znacenje. Pri izradi standarda nije se zeljelo komplicirati uvodjenjem dodatnog keyworda, pa zato mozes static "nakaciti na funkciju".
Citat: |
no, cuj, pishe i u skripti prof. Juraka da uz ove tri (koje ti spominjesh) extern isto tako JEST mem klasa.
no, ti vjerojatno ondak pricas o nekoj drugoj implementaciji standarda, ili???
|
Evo objasnjenja za extern:
Kada deklariras varijablu npr. zapravo si je i definirao, tako da ako u vise source fileova zelis imati istu globalnu varijabu, onda je u jednom i samo jednom fileu mozes definirati (svaka definicija je ujedno i deklaracija), a u ostalima je moras samo deklarirati, jer bi inace dobio compile time error radi redefinicije varijable. To radis sa , sto kompajleru daje do znanja kojeg je tipa varijabla i, te da je ona definirana u nekom drugom source fileu.
Kod funkcija je jednostavno razlikovati definiciju i cistu deklaraciju (prototip) tako sto definicija ima tijelo funkcije, a prototip ga nema. Radi toga je svaka deklaracija funkcije po defaultu extern, pa to nije potrebno (iako se moze) navoditi.
Dakle extern (za razliku od auto, static i register) ne govori o nacinu smjestaja varijable u memoriji, pa to nije memorijska klasa.
_________________ Extraordinary claims require extraordinary evidence. – Carl Sagan
|
|
[Vrh] |
|
|