Vakiot
Sellaiset
...
tiedot,
...
joita
...
ei
...
haluta
...
muuttaa
...
ohjelman
...
suorituksen
...
aikana,
...
kannattaa
...
määritellä
...
vakioiksi.
...
Tällöin
...
ei
...
ole
...
tarvetta
...
huolehtia
...
niiden
...
muuttumattomuudesta.
...
Kääntäjä
...
tekee
...
sen
...
ohjelmoijan
...
puolesta.
...
Esimerkiksi
...
piin
...
arvo
...
on
...
tieto,
...
joka
...
ei
...
muutu
...
ikinä
...
ohjelman
...
ajon
...
aikana.
...
Paljaat
...
vakiot
...
Paljaat
...
vakiot
...
voidaan
...
ryhmitellä
...
seuraavasti:
...
- Numeeriset
...
- vakiot
...
- ,
...
- joita
...
- ovat
...
- esim.
...
- 5,
...
- 5.0,
...
- -5,
...
- 12.4
...
- Merkkivakiot
...
- ,
...
- joita
...
- ovat
...
- esim.
...
- '5',
...
- 'A',
...
- 'a'
...
- Merkkijonovakiot
...
- ,
...
- jollainen
...
- on
...
- esim.
...
- "Turbo
...
- C"
...
Nimetyt
...
vakiot
...
Paljaalle
...
vakiolle
...
voidaan
...
antaa
...
nimi,
...
jota
...
voidaan
...
käyttää
...
ohjelmassa
...
kuten
...
paljasta
...
vakiota.
...
Tällöin
...
on
...
määritelty
...
nimetty
...
vakio
...
.
...
Nimetty
...
vakio
...
määritellään
...
ohjelmassa
...
esimerkiksi
...
seuraavasti:
Code Block |
---|
} #define PII 3.14 {code} * Nimettyjen vakioiden määrittelyt kirjoitetaan ohjelman alkuun ennen void |
- Nimettyjen vakioiden määrittelyt kirjoitetaan ohjelman alkuun ennen void main(void)-riviä.
...
- Nimet
...
- on
...
- tapana
...
- kirjoittaa
...
- suuraakkosin.
...
Note
...
On
...
huomattava,
...
että
...
#define-määrittelyn
...
jälkeen
...
ei
...
kirjoiteta
...
puolipistettä.
...
...
2.
...
tapa:
...
const-muuttuja
...
Toinen
...
tapa
...
luoda
...
vakio
...
on
...
määritellä
...
muuttuja
...
const
...
-tyyppiseksi
...
eli
...
siis
...
vakioksi.
...
Etuna
...
tässä
...
on
...
se
...
että
...
#define
...
määrittelyllä
...
ei
...
ole
...
tyyppiä
...
(siis
...
char,
...
int,
...
float)
...
ja
...
se
...
saattaa
...
aiheuttaa
...
ongelmia
...
joissain
...
tilanteissa.
...
const
...
-muuttujan
...
määrittely:
Code Block |
---|
} const int vakio1 = -7; // Kokonaislukuvakio const float Pii = 3.14; // Reaalilukuvakio const char merkki1 = 'x'; // merkkivakio const char mjono1[] = "Tämä merkkijono on vakio"; // merkkijonovakio {code} *const*\ |
const-määrittely
...
saa
...
aikaan
...
sen,
...
että
...
yllä
...
olevassa
...
esim.
...
Pii
...
onkin
...
nyt
...
vakio,
...
tyyppiä
...
float
.
Muuttuvan tiedon lukeminen
Kun tietoa luetaan esim. joltain laiteportilta, voidaan tehdä seuraavasti:
Code Block |
---|
}}. h1. Muuttuvan tiedon lukeminen Kun tietoa luetaan esim. joltain laiteportilta, voidaan tehdä seuraavasti: {code} const volatile unsigned char *port = 0x30; {code} |
Ohjelma
...
lukee
...
portilta,
...
jonka
...
heksadesimaalinen
...
osoite
...
on
...
0x30,
...
arvon,
...
jonka
...
ohjelma
...
ymmärtää
...
vakiona
...
ja
...
siten
...
se
...
kykenee
...
ainoastaan
...
käyttämään
...
ko.
...
muuttujan
...
arvoa
...
muttei
...
muuttamaan
...
sitä.