Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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);

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 <iostream>

...


#include <cassert>

...

   // assert():in määrittely löytyy täältä.

...



using namespace std;

...



int main()

...


{
    cout << "Anna positiivinen luku: ";

...


    int luku;
    cin >> luku;
    assert(luku >= 0);   // Testataan onko annettu luku positiivinen.

...


    cout << "Antamasi luku (" << luku << ")

...

 on positiivinen\!" <<  endl;
}

...

Note

Testatkaa yllä olevaa

...

koodi!