Variable/fi
│
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
Muuttuja
Muuttuja on tunniste, joka liittyy muistiin, joka voidaan tarkastaa (tai lukea) ja käsitellä ajon aikana.
Määrittely
Muuttujat määritellään var
-osiossa. Pascalissa jokaisella muuttujalla on tietotyyppi, joka on jo tunnettu käännösaikana
(Tai sen data typpi on variant
). Muuttuja ilmoitetaan (tunniste, tietotyyppi) parina, erotettuna kaksoispisteellä. Muuttujat määritellään var
osiossa.
var
foo: char;
Tietotyypin tilavaatimusten mukaan pino pitää varatun muistin määrän heti, kun vastaava laajuus syötetään. Riippuen siitä, mihin var
-osio on sijoitettu, voidaan "puhua" joko globaaleista tai paikallisista muuttujista.
Käsittely
Muuttujien arvoja käsitellään saa arvokseen operaattorilla :=
Tämän lisäksi on joukko sisäänrakennettuja aliohjelmia jotka määrittää implisiittisesti arvot muuttujalle:
- input/output rutiinit kuten,
get
japut
,read
jareadLn
,assign
jaclose
new
jadispose
kun käsitellään osoittimia ja olioitasetLength
kun käsitellään dynaamisia taulukoita
Määrittely
Muuttuja voidaan määritellä niin että se on esitelty ja alustettu yhdellä lausekkeella seuraavasti:
var
x: integer = 42;
Huomaa, että tämä syntaksi ei ole alkuperäistä Pascalia. Siinä esittely ja tehtävät pidetään erillään suunnittelusta. Tämä syntaksi rikkoo tätä periaatetta.
Saatavuus
Muuttuja on saatavilla, mikä tarkoittaa sitä, että viitataan viitattuun muistipaikkaan arvoon yksinkertaisesti määrittelemällä sen tunnus (missä tahansa lauseketta odotetaan).
Huomaa, että on olemassa pari tietotyyppiä, jotka ovat itse asiassa viitteitä, mutta jotka poistetaan automaattisesti, mukaan lukien, mutta ei rajoittuen, luokat, dynaamiset taulukot ja ANSI-merkkijonot.
Kun {$modeSwitch autoDeref+}
(ei suositella), myös tyypitetyt osoittimet poistetaan hiljaa ilman, että ^
("hattu symboli") on läsnä.
Tämä tarkoittaa, että ettei välttämättä toimi varsinaiseen muistilohkoon, johon muuttuja on aidosti yhteydessä, mutta jossain muualla.
Yleensä muuttujan muistipalaa tulkitaan sen tietotyypin mukaan, jossa se on määritelty. 'Typecastauksen' avulla voidaan muuttaa tietyn muuttujan muistilohkoa (ilmaisua kohti).
Muisti alias
Avainsanan absolute
yhteydessä tunniste voidaan liittää aiemmin varattuun muistiin. Vaikka tavallisesti (tunniste, tietotyyppi)-pari asettaa tietyn määrän muistia syrjään, seuraava c
:n esittely ei vie mitään lisätilaa,
vaan linkittää tunnisteen c
muistilohkoon, joka on varattu x
lle:
var
x: byte;
c: char absolute x;
Tässä muistialiasta käytettiin yhtenä strategiana vakuuttamaan kääntäjä sallimaan char
type-tyyppiä koskevat toiminnot,
kun taustalla oleva muisti oli alunperin varattu byte
-tyyppiselle arvolle. Tämä ominaisuus on valittava viisaasti. Se edellyttää että on tietoa tietotyypin muistirakenteesta,
joka ei aiheuta minkäänlaista käyttöoikeusvirhettä.
Tärkeintä on, että tällä tavoin ylimääräisesti viitattu muisti käsitellään ikään kuin se olisi määritelty normaalien sääntöjen mukaisesti.