Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

C

Home Die ANSI Bibliotheken stdlib.h stdarg.h

13.6 assert.h

Diese Includedatei definiert das Makro assert, mit dem sich Testpunkte in einem Programm einfügen lassen. Als Parameter bekommt das Makro einen Ausdruck. Hat der Ausdruck den Wert 0, dann wird das Programm angehalten und eine Fehlermeldung ausgegeben, die folgendem Formatstring entspricht:

"\nAssertion failed: %s, file %s, line %d\n"

Der erste Platzhalter gibt den Ausdruck wieder, den assert prüfen soll. Der Dateiname und die Zeilennummer werden durch den die Makros __FILE__ und __LINE__ des Preprozessors gesetzt.

Wird der Makroname NDEBUG definiert, wird das assert Makro ignoriert. Damit können durch assert Überprüfungen während der Entwicklung gemacht werden und wenn die Version für die Auslieferung erstellt wird, wird durch Definition von NDEBUG die Überprüfung ausgeschaltet, ohne daß das Makro assert aus dem Quelltext entfernt werden muß.

Bei dem folgenden Beispiel wird mittels assert überprüft, ob der stream auch wirklich ungleich NULL ist. Ist er NULL, dann ist er mit Sicherheit nicht gültig, unser Ausdruck liefert einen Wert von 0 (Falsch) und das Programm wird angehalten. Schreiben Sie ein kleines Programm, das diese Funktion enthält und übergeben sie einmal einen gültigen stream und einmal NULL. Dann versuchen sie beides nochmals, nachem sie vor der Includeanweisung für assert.h die Zeile

#define NDEBUG

eingefügt haben. Für TC/PC gibt es in den Optionen für den Compiler das Editfeld "define Macro", das auch dazu benutzt werden kann, NDEBUG für die Releaseversion zu definieren.

int WriteInFile(FILE *stream)
{
   assert(stream!=NULL);
   fputs("Hallo Welt",stream);
}

Home Die ANSI Bibliotheken stdlib.h stdarg.h


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum