Blow Welcome Înapoi în această prelegere despre o vorbă despre variabilele locale și globale, acesta este într-adevăr conceptul
de domeniu de aplicare al funcției sau în domeniul general de aplicare a programului, care are legătură cu momentul în care puteți utiliza variabilele și când
nu le puteți utiliza.
Știm care sunt funcțiile.
Așadar, acum vreau să vorbesc despre variabilele locale variabilele locale într-adevăr au de a face cu mai mult decât doar
funcțiile sunt variabile locale au de a face cu orice care are un bloc de cod.
Deci, variabilele definite în interiorul unei funcții sunt cunoscute ca variabile locale automate,
astfel încât în ​​acel corp de funcții între aceste paranteze de început și de sfârșit dacă declarați o
variabilă ca variabilă este o variabilă locală, va fi creată automat de fiecare dată când se numește funcția.
De asemenea, orice valoare din accesul la acea variabilă este doar locală pentru funcția în care nu
puteți accesa acea variabilă în afara funcției respective, astfel încât variabila nu poate fi accesată în alte funcții dacă este locală pentru o
anumită funcție.
Este accesibil numai de unde este definit.
Dacă o valoare inițială este dată unei variabile din interiorul unei funcții, valorile
inițiale atribuite variabilei de fiecare dată când este apelată funcția dacă doriți să păstrați o valoare într-o variabilă la fiecare
apel ulterior.
Există de fapt un mod în care puteți face acest lucru și puteți vedea că se numește numită
variabilă statică în interiorul unei funcții.
Este din nou mai mult un concept avansat, nu într-o clasă începător, dar este o modalitate prin
care puteți avea aceleași date sau date diferite de fiecare dată când invocați funcția.
Deci, dacă doriți să păstrați, de exemplu, un număr de câte ori a fost apelată o funcție,
declarați că o variabilă locală în interiorul funcției are nevoie de statică cu cuvântul cheie static, dar nu numai variabile locale
regulate vor avea noi valori de fiecare dată.
Puteți utiliza cuvântul cheie automat înaintea tipului de date, dar nu este necesar.
O face mai puțin precisă.
Compilatorul o va adăuga implicit dacă nu îl includeți.
Dar dacă îl includeți, va fi mai precis.
Nu este necesar, așa că se numește o variabilă locală automată.
Există un cuvânt cheie numit auto în C, dar nu este necesar să furnizați că este furnizat în mod implicit.
De aceea, nu o vedeți în multe exemple în care variabilele sunt definite și declarate în
interiorul unei funcții.
Variabilele locale sunt, de asemenea, aplicabile oricarui cod unde variabilele create intr-un bucle de blocuri sau
daca sunt declaratii.
Din nou, dacă aveți o declarație if în ce este un bloc pentru o instrucțiune IF.
Este doar locul în care încep brațele.
Asta se numește bloc.
Blocurile pot fi în funcții.
Blocurile pot fi blocuri de declarații care pot fi în bucle.
Blocurile pot fi oriunde există consola în esență oriunde există paranteze și creați acea
creare variabilă a variabilelor care o declară și poate să-i atribuiți valori.
Dar dacă declarați variabila pe care o creați variabila în interiorul unui bloc.
Puteți utiliza numai vizibilul din interiorul blocului dacă încercați să accesați o variabilă în afara blocului.
Nu va fi așa dacă aveți o declarație if în declarația pe care o declarați o variabilă.
Nu puteți accesa acea variabilă în afara blocului de instrucțiuni if.
La fel cu buclele.
Este foarte important să înțelegeți acest lucru.
Compilatorul se va plânge și vă va da o eroare dacă încercați să îl accesați în altă parte.
În ceea ce înseamnă acest lucru, valorile din date se aplică numai acelui bloc.
Nu împărțiți vreo date variabile globale este opusul unei variabile locale.
Variabilele globale pot fi accesate prin orice funcție din program.
Modul în care creați o variabilă globală este doar că ați pus în partea de sus în afara orice funcție,
astfel încât variabilele globale sunt declarate în afara funcției și nu aparțin nici unei funcții.
Rețineți că principalul cuvânt cheie principal este o funcție.
Astfel, toate variabilele definite în funcția principală sunt accesibile numai în funcția principală.
Deci, variabila principală este funcția principală care nu este accesibilă în celelalte funcții.
Dacă doriți o variabilă care este folosită de toate funcțiile, puneți variabila în afara unei funcții.
De obicei, în partea de sus a fișierului sursă și marcat, de obicei, ca fiind o variabilă globală, variabila globală
este o minciună pentru întregul program de când începe programul când se oprește faptul că variabilele
globale vor fi localizate în memorie.
Orice funcție a programului poate schimba valoarea acelei variabile globale deoarece are acces la ea.
O pot modifica.
Și deci ar trebui să începeți să vă gândiți la tot ce pare
cam periculos pentru că acum aveți un cod care poate accesa aceleași date oriunde, dar vom ajunge la
asta dacă există o variabilă locală declarată într-o funcție cu același nume ca o variabilă atunci funcția va utiliza variabila locală globală.
Acesta va masca variabila globală.
Deci, dacă aveți o variabilă globală numită X și aveți o variabilă locală numită X în
interiorul unei funcții, variabila locală va avea prioritate.
Nu veți trece la modificarea datelor globale ale variabilelor, dacă le atribuiți respectivei variabile
doar pentru a obține o variabilă locală modificată.
Deci, variabila globală nu este accesibilă atunci când aveți același nume și de fapt nu va fi accesată în
acea funcție locală.
Deci, nu folosiți aceleași nume în mod esențial pentru că este vorba doar de confuzie pentru oameni pe care i-am programat
foarte mult în avans programatori sau imediat observ acest lucru.
Voi spune doar x.
Este doar o variabilă locală modificată.
Chiar dacă văd globul același nume.
Dar pentru începători nu este întotdeauna foarte clar.
Permiteți-mi să vă dau un exemplu aici, în acest exemplu, creăm o variabilă globală chiar în partea de sus
înainte de funcția principală.
Și modul în care doriți să vă organizați programul de obicei include declarații în
partea de sus după unele comentarii și apoi ați putea avea unele constante definite și
apoi ați avea variabilele globale variabile globale arata la fel ca variabilele normale, de fapt declarate
dacă sunt declarate în afara funcției, atunci sunt globale.
Deci, în acest exemplu, avem o variabilă globală numită globală, unde inițializez în zero, și
putem inițializa aceste variabile globale oriunde le putem inițializa atunci când le declarăm.
Sau le putem inițializa în orice funcție.
E un număr întreg.
Avem, de asemenea, două funcții principala funcție într-o funcție numită funcția mea.
În interiorul ei avem variabile locale care sunt accesibile numai în interiorul acelor funcții, în funcția principală pe care
o avem la nivel local.
Puteți accesa numai funcția principală locală în interiorul funcției principale, dar pentru că globala mea este o
variabilă globală.
Puteți, de asemenea, accesa că în funcția medie, astfel încât principalul poate
accesa variabilele locale și globale și funcția mea are un nume de variabile locale docs deoarece este declarat în interiorul
parantezelor corpului funcției.
Și de fapt, putem accesa variabila globală care este globală.
Putem, de asemenea, să accesăm X, dar nu putem accesa localul meu Local local.
Ar trebui să spun că Maine mea locală este doar în interiorul funcției principale pe care nu avem acces la asta.
Dacă încercăm să scriu sau să citesc variabila mea principală locală în interiorul funcției mele funcționale, compilatorul vă va da o
eroare pe care trebuie să o înțelegeți că conceptul local local versus global se află în interiorul blocurilor de cod
atunci când sunt declarate.
Puteți să le folosiți numai în bloc.
Dacă o variabilă este în afara unui bloc și este doar o funcție sau este doar un program în
sine, îl puteți accesa în orice funcție variabilele globale ar trebui să fie evitate.
Variabilele globale sunt un fel de lucru rău.
Motivul pentru care variabilele globale sunt rele și de ce ar trebui să le evitați este
deoarece promovează legătura dintre funcții.
Ce înseamnă cuplarea mijloacelor de cuplare?
Dacă aveți o variabilă globală în utilizarea sa de patru funcții, înseamnă că fiecare dintre aceste funcții ar
putea fi dependentă de cealaltă funcție.
Ce este în neregulă cu dependența de dependență cauzează provocarea unui program de a fi mult mai greu de evoluat și de a
găsi erori.
Dacă aveți un bug în programul dvs. și utilizați o variabilă globală în variabilele globale
care provoacă bug-ul acum că bug-ul ar putea fi oriunde în orice funcție care utilizează variabila globală, aceasta complică lucrurile atunci
când aveți date globale.
Aveți o variabilă globală.
Acesta poate fi modificat în funcție de funcție pentru a funcționa cu trei funcții pentru că nu restricționați accesul la
această funcție.
De asemenea, este foarte mare foarte greu.
Odată ce ați găsit eroarea și l-ați izola, ar putea fi foarte greu să
o rezolvați pentru că acum când o remediați, puteți provoca probleme și alte funcții datorită acestor dependențe variabilele globale
ar trebui să fie evitate cât mai mult posibil din cauza acestei cuplări din cauza acestor dependențe.
Există momente în care este posibil să aveți nevoie să o utilizați, dar ar trebui să o evitați și să aveți în
vedere cele mai moderne limbi în majoritatea limbilor orientate pe obiecte, cum ar fi C ++ și Java, nici măcar nu
au conceptul de variabilă globală.
Ele au variabile statice care pot fi variabile de clasă, dar totuși ele sunt încă încapsulate în interiorul
unei clase.
Deci, deoarece datele globale sunt atât de rele.
Noile limbi încearcă de fapt să o interzică și ar trebui să încercați să
o evitați, deoarece complică programul dvs. și face mai greu să găsiți în depanatoare în loc să utilizați date globale transmise date către funcții.
Dacă o funcție are nevoie de acces la unele date trimise la ea OK.
Dacă este o mulțime de date și nu doriți să aveți o mulțime de parametri în teorie, nu ar trebui să aveți niciodată
mai mult decât mai mult de cinci pentru amatori.
Există o carte excelentă numită aici Cod curat care vorbește despre calitatea codului în lucruri pentru a evita
lucrurile de evitat ca variabilele globale.
De asemenea, vorbește despre câți parametri ar trebui să aveți în funcțiile dvs. și dacă o funcție are
20 de parametri, înseamnă că ceva nu este în regulă.
În principal pentru că funcția face probabil prea mult, dar o funcție kynne poate avea acces la date doar prin transmiterea datelor către
el și puteți restricționa utilizarea datelor globale pentru o funcție care necesită o mulțime
de date.
Puteți folosi ceva numit struct pe care nu am vorbit, dar acesta este un alt mod de a face acest lucru.
Deci, nu utilizați datele globale cât mai mult posibil decât atunci când este necesar.
Asigurați-vă că înțelegeți codul și asigurați-vă că documentați cu adevărat foarte bine, astfel încât cineva care
se uită la codul imediat știe că utilizați date globale.
Știe cum funcționează totul.
Acesta este un concept de domeniu de funcții.
Trebuie să înțelegeți acest lucru, astfel încât să acordați atenție tuturor acestor diapozitive și, de asemenea, Wolf va folosi câteva
date globale privind unele date locale în următoarea noastră provocare.
Mulțumesc.