Ajánlott, 2024

Szerkesztő Választása

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

Amint azt korábban említettük, egy változó egy név, amelyet egy memóriahelynek adnak meg, és azt használat előtt be kell jelenteni. C-ben minden változó a program indításakor kerül kijelzésre. A C ++-ban a változók bármikor bejelenthetők, mielőtt azokat az utasításokban használnák.

A változókat a „helyi” és „globális” változók közé sorolják, ami a vita fő témája. Itt a helyi és a globális változó közötti fő különbség az, hogy egy lokális változó egy függvényblokkban kerül bejelentésre, ahol a globális változó a program funkcióin kívül kerül kimutatásra.

Tanuljunk meg néhány további különbséget a helyi és a globális változók között egy összehasonlító táblázatsal együtt.

Összehasonlító táblázat:

Az összehasonlítás alapjaHelyi változóGlobális változó
NyilatkozatA változók egy funkció belsejében jelennek meg.A változókat bármely funkción kívül adják meg.
területEgy függvényen belül, amelyen belül bejelentésre kerül sor.A program során.
HozzáférésCsak az állításokhoz férhetnek hozzá, egy olyan funkción belül, amelyikben bejelentették őket.Hozzáférés az egész program bármely állításához.
ÉletLétrehozva, amikor a funkcióblokk be van írva és megsemmisül a kilépéskor.A program teljes ideje alatt fennmarad a létezés.
TárolásA helyi változókat a veremben tároljuk, hacsak nincs megadva.A fordító által meghatározott helyszínen tárolva.

A helyi változó meghatározása

A helyi változó mindig egy funkcióblokkban van bejelentve. A C-ben egy helyi változó szerepel a kódblokk kezdetén. A C ++ programban a kód blokkban bárhol megadható, mielőtt használatuk megtörténne. A helyi változókhoz csak a függvényben írt utasítások érhetők el, amelyekben a helyi változót bejelentik. Bizonyos értelemben biztonságosak, hogy nem férhetnek hozzá a program bármely más funkciójához.

A helyi változó addig létezik, amíg a függvény blokkja végrehajtásra nem kerül, és ezáltal megsemmisül a végrehajtás befejezése után. A helyi változók elvesztik a tartalmukat, amint a végrehajtás elhagyta azt a blokkot, amelyben bejelentették.

Ennek oka, hogy a helyi változókat a veremben tárolják, kivéve, ha speciális tárolásuk meg van adva. A verem a természetben dinamikus, és a memóriahely megváltozása az oka annak, hogy a helyi változó nem tartja meg az értékét, amint a függvény blokkja létezik.

Jegyzet:
Van azonban módja a helyi változó értékének megőrzésére a „statikus” módosító segítségével.

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

A globális változó a program összes funkcióján kívül jelenik meg. Ellentétben a helyi változókkal, a globális változó elérhető a programban lévő bármely funkcióval. A globális változók nem elég megbízhatóak, mivel értéküket a program bármely funkciója megváltoztathatja.

A globális változók mindaddig fennmaradnak, amíg az egész program teljes egészében végrehajtódik. A globális változók megtartják értékeiket, amíg a program végrehajtásra nem kerül. Ennek oka az, hogy a rögzített memóriaterületen tárolják őket, amit a fordító határoz meg.

A Globális változó olyan helyzetekben hasznos, amikor több funkció ugyanazokat az adatokat érinti. Nagyszámú globális változó használata problémás lehet, mivel nemkívánatos változások történhetnek egy globális változó értékében.

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

  1. A helyi változókat „lokálisnak” nevezik, mert csak olyan függvényekről ismertek, amelyekben egy olyan függvényt írtak, amelyen belül bejelentették őket, és amelyek nem ismertek a funkcióblokkon kívül más funkciókra. Globális változó esetén a program minden egyes funkciója ismert; ezért „globálisnak” nevezik őket.
  2. A globális változók megtartják értéküket, amíg a program végrehajtási fázisban van, mivel azokat a fordító által meghatározott fix helyen tárolják. A helyi változókat a veremen tárolják; ezért nem tartják meg az értéküket, mivel a „stack” dinamikus jellegű, de a fordító a statikus módosító használatával irányíthatja értékét.
  3. Ha egy globális és egy helyi változót ugyanazzal a névvel deklarálnak, akkor egy kódblokk minden olyan állítása, amelyben a helyi változó deklarálva van, csak egy helyi változóra utal, és nem okoz semmilyen hatást a globális változóra.
  4. A helyi változó megsemmisül, amikor a program kilépése a blokkból kilép, amelyben a helyi változó szerepel. A teljes program megszűnésekor azonban egy globális változó megsemmisül.

Következtetés:

A helyi és globális változók egyaránt szükségesek a program írásakor. De a nagyszámú globális programban nagyszámú globális változó bejelentése problematikus lehet, mivel nemkívánatos változásokat okozhat egy globális változóban; és nehezen tudnánk azonosítani, hogy a program melyik része tette ezt a változást. Ezért kerülni kell a felesleges globális változók kijelentését.

Top