Atšķirība starp lokālo un globālo mainīgo

Autors: Laura McKinney
Radīšanas Datums: 1 Aprīlis 2021
Atjaunināšanas Datums: 13 Maijs 2024
Anonim
difference between local and global variables in c
Video: difference between local and global variables in c

Saturs


Kā mēs apspriedām iepriekš, mainīgais ir nosaukums, kas tiek piešķirts atmiņas vietai, un tas pirms lietošanas jādeklarē. C daļā visi mainīgie tiek deklarēti programmas sākumā. C ++ mainīgos lielumus var deklarēt jebkurā brīdī, pirms tie tiek izmantoti instrukcijās.

Mainīgie tiek klasificēti kā “vietējie” un “globālie” mainīgie, kas ir mūsu diskusijas galvenā tēma. Šeit galvenā atšķirība starp vietējo un globālo mainīgo ir tāda, ka lokālais mainīgais tiek deklarēts funkciju blokā. Turpretī globālais mainīgais tiek deklarēts ārpus programmas funkcijām.

Izpētīsim vēl dažas atšķirības starp vietējo un globālo mainīgo, kā arī salīdzināšanas diagrammu.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Priekšrocības
  5. Trūkumi
  6. Secinājums

Salīdzināšanas tabula:

SALĪDZINĀJUMA PAMATS VIETĒJĀ mainīgā GLOBĀLĀ mainīgā
Deklarācija Mainīgie tiek deklarēti funkcijas iekšpusē.
Mainīgie tiek deklarēti ārpus jebkuras funkcijas.
Darbības joma
Funkcijas ietvaros, kuras ietvaros tie tiek deklarēti.Visā programmā.
Vērtība
Neinicializēts vietējais mainīgais rada atkritumu vērtības saglabāšanu.Neinializēts globālais mainīgais pēc noklusējuma saglabā nulli.
Piekļuve Pieejams tikai ar paziņojumiem funkcijas ietvaros, kurā tie tiek deklarēti. Piekļūst jebkuram paziņojumam visā programmā.
Datu koplietošanaNav paredzētsAtvieglots
DzīveIzveidots, kad funkciju bloks ir ievadīts un iznīcināts pēc izejas. Palieciet visu laiku, kamēr jūsu programma tiek izpildīta.
Uzglabāšana
Vietējie mainīgie tiek glabāti kaudzē, ja vien tie nav norādīti.
Saglabā fiksētā vietā, par kuras izlemšanu atbild kompilators.
Parametrs ietNepieciešamsNav nepieciešams globālajiem mainīgajiem.
Mainīgas vērtības izmaiņasJebkuras izmaiņas, kas paredzētas vietējā mainīgajā, neietekmē citas programmas funkcijas.Funkcijas globālajā mainīgajā piemērotās izmaiņas atspoguļo izmaiņas visā programmā.

Vietējā mainīgā definīcija

A vietējais mainīgais vienmēr tiek deklarēts funkciju blokā. C burtā vietne mainīgais tiek deklarēts koda bloka sākumā. C ++, tos pirms lietošanas var deklarēt jebkur koda blokā. Vietējiem mainīgajiem var piekļūt tikai ar paziņojumiem, kas ierakstīti funkcijā, kurā tiek deklarēti vietējie mainīgie. Tie ir droši tādā nozīmē, ka tiem nevar piekļūt, izmantojot citas tās pašas programmas funkcijas.


Vietējais mainīgais pastāv līdz brīdim, kad tiek izpildīts funkcijas bloks, un tādējādi tas tiek iznīcināts pēc tam, kad izpildīšana iziet no bloka. Vietējie mainīgie zaudē savu saturu, tiklīdz izpilde atstāj bloku, kurā tie tiek deklarēti.

Iemesls tam ir tas, ka vietējie mainīgie tiek glabāti kaudzē, ja vien nav norādīta to īpašā krātuve. Kaudze pēc būtības ir dinamiska, un atmiņas vietas maiņa noved pie tā, ka vietējais mainīgais neuztur to vērtību, tiklīdz pastāv funkcijas bloks.

Piezīme:
Tomēr ir veids, kā saglabāt lokālā mainīgā vērtību, izmantojot “statisko” modifikatoru.

Globālā mainīgā definīcija

A globālais mainīgais tiek deklarēts ārpus visām programmā esošajām funkcijām. Atšķirībā no vietējiem mainīgajiem, globālajam mainīgajam var piekļūt ar jebkuru funkciju, kas atrodas programmā. Globālie mainīgie nav daudz ticami, jo to vērtību var mainīt ar jebkuru programmā esošo funkciju.

Tie paliek spēkā, līdz visa programma tiek pilnībā izpildīta. Globālie mainīgie saglabā savas vērtības līdz programmas izpildei. Iemesls ir tas, ka tie tiek glabāti fiksētā atmiņas reģionā, par kuru nolemj kompilators.


Globālais mainīgais ir noderīgs situācijās, kad vairākām funkcijām ir piekļuve tiem pašiem datiem. Liela skaita globālo mainīgo izmantošana var būt problemātiska, jo var būt nevēlamas izmaiņas globālā mainīgā vērtībā.

  1. Vietējos mainīgos sauc par “vietējiem”, jo tie ir zināmi tikai paziņojumiem, kas rakstīti funkcijā, kurā tie ir deklarēti, un nav zināmi nevienai citai funkcijai, kas atrodas ārpus šī funkciju bloka. Globālā mainīgā gadījumā tie ir zināmi katrai funkcijai, kas atrodas programmā; tāpēc tos sauc par “globāliem”.
  2. Globālie mainīgie saglabā savu vērtību, līdz programma atrodas izpildes fāzē, jo tie tiek glabāti fiksētā vietā, par kuru nolemj kompilators. Vietējie mainīgie tiek saglabāti kaudzē; tātad tie nesaglabā savu vērtību, jo “kaudze” ir dinamiska rakstura, bet kompilatoru var norādīt saglabāt to vērtību, izmantojot “statisko” modifikatoru.
  3. Ja globālais un vietējais mainīgais tiek deklarēts ar vienu un to pašu nosaukumu, tad visi koda bloka paziņojumi, kuros tiek deklarēts vietējais mainīgais, attieksies tikai uz vietējo mainīgo un neradīs nekādu efektu globālajam mainīgajam.
  4. Vietējais mainīgais tiek iznīcināts, kad tiek kontrolēta programmas izeja no bloka, kurā tiek deklarēts vietējais mainīgais. Tomēr, pārtraucot visu programmu, tiek iznīcināts globālais mainīgais.

Priekšrocības

Vietējais mainīgais

  • Vietējā mainīgā lielākais ieguvums ir tāds, ka dati netiek nejauši mainīti. Mainīgais tiek deklarēts bloka iekšpusē, un šis koda bloks izmanto mainīgo un ļauj izvairīties no nevēlamām blakusparādībām.
  • Vietējais mainīgais patērē atmiņu ierobežotā laika posmā tikai tad, kad tiek izpildīts bloks, kas satur mainīgo.

Globālais mainīgais

  • Globālie mainīgie ir ļoti noderīgi, ja jums ir darīšana ar vairākām programmas funkcijām, manipulējot ar tiem pašiem datiem.
  • Izmaiņas, kuras bija jāpiemēro visā programmā, būs vieglāk izdarāmas, ieviešot globālo mainīgo.
  • Mēs varam piekļūt no jebkuras vietas vai izmantojot jebkuru programmas izlases funkciju.

Trūkumi

Vietējais mainīgais

  • Vietējā mainīgā darbības joma ir ierobežota.
  • Aizliedz datu koplietošanu.
  • Viņi nespēj saglabāt datus starp sarunām, jo ​​vietējie mainīgie tiek ģenerēti un noņemti ar katru ierakstu un izeju no bloka. Tomēr vērtību saglabāšanai var izmantot statisko modifikatoru.

Globālais mainīgais

  • Liela skaita globālo mainīgo izmantošana var radīt programmas kļūdas.
  • Galvenā problēma, ko tā rada, ir nejauša izmaiņu parādīšanās, ko visā programmā izplata globālie mainīgie.
  • Var rasties arī nepieciešamība veikt koda atkārtotu reakciju, kas ir ļoti plašs process, kurā tiek pārstrukturēts viss programmas kods.

Secinājums:

Gan vietējie, gan globālie mainīgie ir nepieciešami un vienādi nepieciešami, rakstot programmu. Tomēr liela skaita globālo mainīgo deklarēšana masveida programmā varētu būt problemātiska, jo tas var izraisīt nevēlamas izmaiņas globālajā mainīgajā; un būs grūti noteikt, kura programmas daļa veica šīs izmaiņas. Tāpēc vajadzētu izvairīties no nevajadzīgu globālo mainīgo deklarēšanas.