Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
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}