[Powered by Google Translate] DAVID DICIURCIO: Niin tärkeä käsite ymmärtää vuonna
ohjelmointi on käsite soveltamisalaa.
Laajuus voidaan määritellä yhteydessä, jossa muuttuja on
näkyviä tai helposti.
Esimerkiksi Sanotaan meillä on funktio, tärkein, eli
tarkoitus kasvattaa muuttujan, x, yhdestä kahteen.
Kuten näemme, pääasiassa alustaa x yhteen, tulostaa
joitakin tekstiä, niin kulkee funktion lisäys, ennen
tulostaa enemmän tekstiä.
Jos tämä toiminto olisi toimimaan oikein, se olisi
tulostaa x: 2.
Yritetään.
>> Joten, kuten näette, pääasiassa ei tee mitä odotimme.
Se palauttaa arvon 1, pikemminkin
kuin 2 odotimme.
Syy tähän vian voidaan selittää soveltamisalaan.
Vuonna toiminto, tärkein, me alustettu x
vain toiminto.
Toisin sanoen, muuttuja x on paikallisesti
toiminto, tärkein, ja ei ole käytettävissä
ulkopuolella funktion.
Vain tärkeimmät pääsevät x tässä tilanteessa.
Kun me kutsumme lisäys emme siirrä x kuin tulo, mutta
pelkkä kopio x.
Seurauksena tästä, toiminto kasvu vain lisää
arvo 1 kopion arvo x.
Mutta ei X itse.
Kun palaamme pääasiassa x sinänsä ei ole muuttunut lainkaan.
Joten tulostaa x vain tuottaa arvoa 1.
>> No, niin että jää kysymys: miten meidän pitäisi korjata
tämä toiminto?
Yksi ratkaisu on ottaa lisäys palauttaa arvon.
Tällä tavalla, toiminto kasvu tulee
antaa meille takaisin kokonaisluku.
Joten tässä on meidän tarkistettua koodia
vaihtoehtoinen lisäys toiminto.
Täällä me vaan palasi x + 1, eikä vain loppua
jossa x on yhtä kuin x + 1.
Myös otettava huomata, että me korvataan lähdön
lisäys aiemmin mitätöidä, KANS, jossa todetaan, että
lisäys nyt siirtää takaisin kokonaisluku.
Nyt, kun kasvu kulkee, se palata arvo
2, juuri niin kuin halusimme.
>> Toinen tilanne osoittaa soveltamisala merkitys
on scopeloop.c.
Tässä koodi, meillä on silmukka, jossa muuttuja
yhteensä alustetaan kunkin vaiheen aikana.
Valitettavasti tämä koodi ei koota.
Tämä johtuu siitä, että muuttuva koko todellisuudessa ei ole olemassa
ulkopuolella ja silmukka.
Muuttujat julisti sisällä silmukoita olemassa vain sisällä
silmukka itse ja on osoitettu meidän virhe
viestin, yhteensä pimeästi.
Muuttujaa kokonaismäärä ei ole vielä ilmoitettu puitteissa
Toiminnon tärkein.
Lisäksi aikana jokainen iteraatio meidän on silmukka, me
ovat reinitializing meidän yhteensä 0.
Tämä itsessään ei pidä koodia kokoamiseen, mutta se
estäisi yhteensä ikinä summataan arvoon ohi 1.
>> Jälleen, mikä on paras tapa korjata tämä?
Eräs helpompaa menetelmiä lupaan sisältyy yhteensä paikallista
toiminto, tärkeimmät, eikä silmukan itse.
Tämä yhteensä todella kasvattaa, ja lopulta,
jotta se voidaan tulostaa jälkeen varten silmukka.
Toinen tekniikka, että minä vain lyhyesti yhteen olisi
olla käyttöä globaalien muuttujien.
Globaalit muuttujat ovat muuttujia, jotka on ilmoitettu ennen main
että niiden arvon säilyttämiseksi koko ohjelmaa.
Tietenkin toimintoja voi muuttaa arvoa maailmanlaajuisesti,
mutta ne eivät mene pois soveltamisalasta, kuten paikallisia muuttujia.
Kuitenkin käyttämällä globaalien muuttujien taipumus paheksutaan
kun niin huono suunnittelu, koska on olemassa parempia tapoja
tietojen jakamista keskuudessa toimintoja.
Esimerkiksi käyttämällä osoittimia.
Mutta siitä lisää toisella kertaa.
>> Lopuksi, on tärkeää saada käsitys soveltamisalan
yhteydessä tietokoneen muistiin tai RAM.
Kun me suorittaa ohjelman, paikallisia muuttujia ja toimintoja
lisätään tiettyyn sijaintiin
RAM kutsutaan pino.
Kuten palauttavat, pino kehyksiä muuttujat
tehokkaasti poistetaan pinosta vapauttaa lisää muistia.
Joten kun tarkastellaan soveltamisalaan, varmista muistat nämä kolme
avainkohdat.
Yksi, laajuus voi olla joko paikallisia tai maailmanlaajuisia.
Se riippuu siitä, missä muuttuja on julistettu.
Kaksi muuttujat ilmoitetut tai alustetaan toiminnot
paikallista aikaa, että toiminto, eikä sitä voi muuttaa muiden
toimintoihin, ainakaan ilman viitteitä.
Lopuksi muuttujat ovat myös paikallista silmukat ovat
julisti sisällä.
Muuttujat eivät ole käytettävissä
ulkopuolella silmukan.
>> Siinä kaikki nyt soveltamisalasta.
Kiitos katsomassa.