...
Arvojen
...
testaaminen
...
(assert)
...
Yksi
...
tehokkaista
...
ohjelmoijan
...
apuvälineistä
...
on
...
assert()
...
-funktio.
...
Sen
...
avulla
...
voidaan
...
tarkastaa
...
ehtoja.
...
Se
...
löytyy
...
cassert-tiedostosta
...
(tai
...
assert.h).
...
Hyvä
...
puoli
...
assert()
...
-funktiossa
...
on
...
että
...
se
...
voidaan
...
poistaa
...
lopullisesta
...
ohjelmasta
...
asettamalla
...
#define
...
NDEBUG
...
-määritys
...
ennen
...
#include
...
<cassert>:ia,
...
jolloin
...
kaikki
...
assert()
...
-funktion
...
kutsut
...
muuttuvat
...
ei-operaatioiksi
...
eli
...
ne
...
eivät
...
tule
...
mukaan
...
käännettyyn
...
ohjelmakoodiin,
...
eikä
...
siten
...
vaikuta
...
ohjelman
...
suorituskykyyn.
...
assert():in
...
syntaksi:
Code Block |
---|
} void assert(int expression); {code} * |
assert()
...
-funktio
...
testaa
...
parametrinsa
...
arvon
...
ja
...
jos
...
se
...
on
...
tosi,
...
ohjelma
...
jatkaa
...
toimintaansa.
...
Silloin
...
kun
...
parametri
...
on
...
epätosi
...
se
...
tulostaa
...
virheilmoituksen
...
ja
...
tiedoston
...
ja
...
rivin
...
missä
...
assert()
...
-funktiota
...
kutsuttiin
...
ja
...
lopettaa
...
ohjelman.
...
Esimerkki
...
1.
...
assert():in
...
käyttö.
Code Block |
---|
} #include <stdio.h> #include <assert.h> // assert():in määrittely löytyy täältä. int main() { printf("Anna positiivinen luku: "); int luku; scanf("%d", &luku); assert(luku >= 0); // Testataan onko annettu luku positiivinen. printf("Antamasi luku (%d) on positiivinen!", luku); } {code} {note}Testatkaa yllä olevaa koodi!{note} |
Note |
---|
Testatkaa yllä olevaa koodi! |