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