Wiki Markup |
---|
h1. 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. |
...
h4. assert():in syntaksi: |
...
{code |
} 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 |
} #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} |