Hirdetés

Új hozzászólás Aktív témák

  • kovisoft
    őstag

    Sziasztok. Nemrég kezdtem el olvasni a Benkő Tiborné - Benkő László - Tóth Bertalan : Programozzunk C nyelven! könyvet. A könyv az elején felhívja a figyelmet a deklaráció és a definíció közti különbségre és arra is hogy a kezdők könnyen összekeverik a kettőt (teljesen jogosan :) ) Sajnos nem tudtam teljesen megérteni. Ha jól sejtem a lényegi különbség a memóriafoglalásban van.
    Ha jól értem ez definíció:
    int pelda=0;
    Ez értelemszerűen lefoglal valamekkora (2 byte?) memóriát.
    Én a deklarációt úgy értelmeztem hogy ezzel adjuk meg egy név tulajdonságait (típus, láthatóság, tárolási osztály, élettartam) és nem jár memóriafoglalással.
    Így kellene kinézzen?
    int pelda;
    Kérem valaki világosítson fel hogy hol rontom el az értelmezést. Miért fontos a kettő közötti különbség?

    A többiek már leírták, hogy alapvetően jól fogalmaztad meg a deklaráció és definíció közötti különbséget, de a változóval kapcsolatos következtetésed nem helyes.A példádban az
    int pelda=0;
    és az
    int pelda;
    egyaránt definíció, mindkettő lefoglal a változónak memóriát, a különbség köztük annyi, hogy az első ad is egy 0 kezdőértéket a változónak. Ennek a változónak a deklarációja ez lenne:
    extern int pelda;
    Ez nem foglal le memóriát a változónak, csak annyit mond, hogy valahol máshol van definiálva egy pelda nevű változó, aminek int a típusa. A deklaráció tehát ahhoz kell, hogy az adott helyen tudj használni egy változót vagy függvényt, de valahol máshol kell majd definiálnod is azt.

Új hozzászólás Aktív témák