Különbség a helyi és a globális változó között

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 14 Lehet 2024
Anonim
Különbség a helyi és a globális változó között - Technológia
Különbség a helyi és a globális változó között - Technológia

Tartalom


Amint azt korábban tárgyaltuk, a változó egy név, amelyet egy memóriahelynek adunk, és használat előtt deklarálni kell. C-ben az összes változót a program kezdetén deklarálják. A C ++ változatban a változók bármikor deklarálhatók, mielőtt felhasználnák azokat az utasításokban.

A változókat a „helyi” és a „globális” változatokba soroljuk, ami a beszélgetésünk fő témája. A helyi és a globális változó közötti fő különbség itt az, hogy egy helyi változót egy funkcióblokkban deklarálnak. Ezzel szemben a globális változót a program funkcióin kívül deklarálják.

Vizsgáljuk meg még néhány különbséget a helyi és a globális változó között, összehasonlító diagrammal együtt.


  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Előnyök
  5. hátrányok
  6. Következtetés

Összehasonlító táblázat:

AZ összehasonlítás alapja HELYI VÁLTOZÓ GLOBÁLIS VÁLTOZÓ
Nyilatkozat A változókat egy funkción belül deklarálják.
A változókat bármely funkción kívül deklarálják.
terület
Egy olyan funkción belül, amelyen belül deklarálják őket.A program egészében.
Érték
Az inicializálatlan helyi változó a szemetet tárolja.Az inicializálatlan globális változó alapértelmezés szerint nullát tárol.
Hozzáférés Csak az utasításokkal érhető el, azon funkción belül, amelyben deklarálták őket. A teljes program bármelyik nyilatkozatával elérhető.
Az adatok megosztásaNem biztosítottegyszerűsített
ÉletA funkcióblokk megadásakor jön létre, és kilépéskor megsemmisíti. Maradjon fenn a program végrehajtásának teljes ideje alatt.
Tárolás
A helyi változók a veremben kerülnek tárolásra, hacsak nincs megadva.
Egy rögzített helyen tárolja, amelyet a fordító dönt.
Paraméter haladFeltétlenül szükségesNem szükséges a globális változókhoz.
Változások egy változó értékbenA helyi változóban szereplő módosítások nem befolyásolják a program többi funkcióját.A függvény globális változójában alkalmazott változások a teljes program változásait tükrözik.

A lokális változó meghatározása

A helyi változó mindig egy funkcióblokkban van deklarálva. A C-ben egy helyi változót deklarálnak a kódblokk elején. A C ++ alkalmazásban a kódblokk bárhol deklarálhatók felhasználásuk előtt. A helyi változók csak olyan függvényen belüli utasításokkal érhetők el, amelyben a helyi változók deklarálva vannak. Biztonságosak abban az értelemben, hogy nem érhetők el ugyanazon program más funkcióival.


A helyi változó addig létezik, amíg a függvény blokkja végrehajtásra nem kerül, és így megsemmisül, miután a végrehajtás kilép a blokkból. A helyi változók elveszítik tartalmát, amint a végrehajtás elhagyta azt a blokkot, amelyben deklarálták.

Ennek oka az, hogy a helyi változókat a veremben tárolják, kivéve, ha a speciális tárolót meghatározzák. A verem jellegénél fogva dinamikus, és a memória elhelyezkedésének megváltozása vezeti azt az okot, hogy a helyi változó nem tartja meg értékét, amint egy funkcióblokk létezik.

Jegyzet:
Van azonban mód a helyi változó értékének megtartására a „statikus” módosító használatával.

A globális változó meghatározása

A globális változó a programban levő összes funkción kívül esik. A helyi változóktól eltérően a globális változóhoz a program bármelyik funkciója hozzáférhető. A globális változók nem nagyon megbízhatóak, mivel értéküket a program bármely funkciója megváltoztathatja.

Egészen addig maradnak fenn, amíg az egész program teljes végrehajtása meg nem történik. A globális változók addig tartják meg az értékeiket, amíg a program végrehajtásra nem kerül. Ennek oka az, hogy a memória rögzített részén tárolódnak, amelyet a fordító dönt.

A globális változó hasznos olyan helyzetekben, amikor több funkció érinti ugyanazt az adatot. Nagyon sok globális változó használata problémás lehet, mivel a globális változó értékében nem kívánt változások történhetnek.

  1. A helyi változókat „helyi” -nek nevezzük, mert csak azoknak a funkcióknak az utasításaival vannak ismertek, amelyekben belül vannak deklarálva, és az adott funkcióblokkon kívüli más funkciók számára nem ismertek. Globális változó esetén a program minden egyes funkciója ismert; ennélfogva „globálisnak” hívják őket.
  2. A globális változók addig megőrzik értéküket, amíg a program a végrehajtási szakaszba nem kerül, mivel azokat a fordító által meghatározott rögzített helyen tárolják. A lokális változókat a verem tárolja; ennélfogva nem tartják meg értéküket, mivel a „verem” dinamikus természetű, de a fordítót meg lehet utasítani az érték megtartására a „statikus” módosító használatával.
  3. Ha egy globális és egy helyi változót ugyanazzal a névvel deklarálnak, akkor egy olyan kódblokk minden állítása, amelyben a helyi változót deklarálják, csak egy helyi változóra vonatkozik, és nem fog hatást gyakorolni a globális változóra.
  4. Egy helyi változó megsemmisül, amikor a program ellenőrzése kilép a mondatból, amelyben a helyi változó deklarálva van. A globális változó azonban a teljes program leállításakor elpusztul.

Előnyök

Helyi változó

  • A helyi változó fő előnye az, hogy az adatok véletlenszerű megváltoztatása nem történik. A változó blokkban van deklarálva, és ezek a kódblokkok a változót használják, és elkerülik a nem kívánt mellékhatásokat.
  • A helyi változó csak korlátozott ideig használja a memóriát, csak akkor, amikor a változót tartalmazó blokkot végrehajtják.

Globális változó

  • A globális változók nagyon hasznosak, ha a program több funkciójával foglalkozik, ugyanazokkal az adatokkal manipulálva.
  • A globális változó bevezetésével könnyebbé válnak a teljes programban alkalmazandó változtatások.
  • Bárhonnan vagy a program bármely véletlenszerű funkcióján keresztül hozzáférhetünk.

hátrányok

Helyi változó

  • A helyi változó hatóköre korlátozott.
  • Tilos az adatok megosztását.
  • Nem tudják megőrizni az adatokat a hívások között, mert helyi változókat generálnak és távolítanak el minden egyes belépéskor és kilépéskor a blokkból. A statikus módosító azonban felhasználható az értékek megtartására.

Globális változó

  • Nagyszámú globális változó használata programhibákat generálhat.
  • A fő problémát a változások véletlenszerű előfordulása okozza, amelyek a program egészében elterjedt globális változók miatt vannak.
  • Fontos lehet a kód-refaktorálás végrehajtásának szükségessége is, amely egy nagyon kiterjedt folyamat, ahol a teljes programkód átszervezésre kerül.

Következtetés:

A lokális és a globális változók egyaránt szükségesek és egyformán szükségesek a program írásakor. Nagyon sok globális változó bejelentése azonban problémát jelenthet egy hatalmas programban, mivel nem kívánt változásokat okozhat egy globális változóban; és nehéz lesz azonosítani, hogy a program melyik része változtatta meg. Ezért el kell kerülni a szükségtelen globális változók deklarálását.