Priporočena, 2024

Izbira Urednika

Razlika med lokalno in globalno spremenljivko

Kot smo razpravljali že prej, je spremenljivka ime, podano na pomnilniško mesto in ga je treba deklarirati, preden se uporabi. V C so vse spremenljivke deklarirane ob zagonu programa. V C ++ lahko spremenljivke kadar koli deklariramo, preden jih uporabimo v navodilih.

Spremenljivke so nadalje razvrščene v 'lokalno' in 'globalno' spremenljivko, kar je glavna tema naše razprave. Tu je glavna razlika med lokalno in globalno spremenljivko ta, da je lokalna spremenljivka deklarirana znotraj funkcijskega bloka, kjer je globalna spremenljivka razglašena izven funkcij v programu.

Preučimo še nekaj razlik med lokalno in globalno spremenljivko skupaj s primerjalno tabelo.

Tabela za primerjavo:

Podlaga za primerjavoLokalna spremenljivkaGlobalna spremenljivka
DeklaracijaSpremenljivke so deklarirane znotraj funkcije.Spremenljivke so razglašene izven katere koli funkcije.
Področje uporabeV funkciji, znotraj katere so deklarirani.V celotnem programu.
DostopDo njih dostopajo samo izjave, znotraj funkcije, v kateri so deklarirane.Dostopno s katero koli izjavo v celotnem programu.
ŽivljenjeUstvarjeno, ko je funkcijski blok vnesen in uničen ob izhodu.Ostanite ves čas, ko se program izvaja.
ShranjevanjeLokalne spremenljivke so shranjene v skladu, razen če je določeno.Shranjeno na fiksni lokaciji, ki jo določi prevajalnik.

Opredelitev lokalne spremenljivke

Lokalna spremenljivka je vedno deklarirana znotraj funkcijskega bloka. V C je lokalna spremenljivka deklarirana na začetku kodnega bloka. V C ++ jih je mogoče deklarirati kjerkoli v kodnem bloku pred njihovo uporabo. Do lokalnih spremenljivk lahko dostopajo samo stavki, zapisani znotraj funkcije, v kateri je lokalna spremenljivka deklarirana. Varni so v smislu, da jim ne morejo dostopati nobene druge funkcije istega programa.

Lokalna spremenljivka obstaja, dokler se ne izvede blok funkcije in s tem uniči, ko izvršitev zapusti blok. Lokalne spremenljivke izgubijo vsebino takoj, ko je izvršitev zapustila blok, v katerem so deklarirani.

Razlog za to je, da so lokalne spremenljivke shranjene v skladu, razen če je podano njihovo posebno shranjevanje. Stack je po svoji naravi dinamičen in sprememba v pomnilniški lokaciji povzroči, da lokalna spremenljivka ne zadrži svoje vrednosti takoj, ko obstaja blok funkcije.

Opomba:
Vendar pa obstaja način, kako ohraniti vrednost lokalne spremenljivke z uporabo "statičnega" modifikatorja.

Opredelitev globalne spremenljivke

Globalna spremenljivka je razglašena izven vseh funkcij, ki so prisotne v programu. Za razliko od lokalnih spremenljivk je globalni spremenljivki dostopna katera koli funkcija, ki je prisotna v programu. Globalne spremenljivke niso veliko zanesljive, saj se njihova vrednost lahko spremeni s katero koli funkcijo, ki je prisotna v programu.

Globalne spremenljivke ostajajo, dokler se celoten program ne izvede v celoti. Globalne spremenljivke ohranijo svoje vrednosti, dokler se program ne izvaja. Razlog za to je, da so shranjeni na fiksnem območju pomnilnika, ki ga določi prevajalnik.

Globalna spremenljivka je koristna v primerih, ko več funkcij dostopa do istih podatkov. Uporaba velikega števila globalnih spremenljivk je lahko problematična, saj lahko pride do neželenih sprememb vrednosti globalne spremenljivke.

Ključna razlika med lokalno in globalno spremenljivko.

  1. Lokalne spremenljivke se imenujejo "lokalne", ker so znane samo izjavam, napisanim v funkciji, znotraj katere so deklarirane in niso znane nobeni drugi funkciji, ki je zunaj tega funkcijskega bloka. V primeru globalne spremenljivke so znane vsaki funkciji, ki je prisotna v programu; zato se imenujejo „globalni“.
  2. Globalne spremenljivke ohranijo svojo vrednost, dokler program ni v fazi izvajanja, saj so shranjene na fiksni lokaciji, ki jo določi prevajalnik. Lokalne spremenljivke so shranjene v skladu; zato ne ohranijo svoje vrednosti, ker je "stack" po naravi dinamičen, vendar se lahko prevajalnik usmeri, da ohrani svojo vrednost z uporabo "statičnega" modifikatorja.
  3. Če sta globalna in lokalna spremenljivka deklarirani z istim imenom, se bodo vsi stavki kodnega bloka, v katerih je deklarirana lokalna spremenljivka, nanašali samo na lokalno spremenljivko in ne bodo imeli nobenega učinka na globalno spremenljivko.
  4. Lokalna spremenljivka se uniči, ko nadzor izhoda programa iz bloka, v katerem je lokalna spremenljivka deklarirana. Vendar pa se globalna spremenljivka uniči, ko se konča celoten program.

Sklep:

Lokalne in globalne spremenljivke so enako potrebne med pisanjem programa. Vendar pa je lahko razglasitev velikega števila globalnih spremenljivk problematična v velikem programu, saj lahko povzroči neželene spremembe globalne spremenljivke; in težko bi bilo ugotoviti, kateri del programa je naredil to spremembo. Zato se je treba izogibati razglasitvi nepotrebnih globalnih spremenljivk.

Top