assert

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Assert.h - Index


Header-Datei

assert.h

Prototyp

void assert(int test);

Beschreibung

Testet eine Bedingung und bricht die Ausführung möglicherweise ab.

assert ist ein Makro, das zu einer if-Anweisung erweitert wird. Wenn die Auswertung von test 0 ergibt, ruft das Makro assert die Funktion _assert auf

void _RTLENTRY _EXPFUNC _assert(char * __cond, char * __file, int __line);

und bricht die Programmausführung ab. Die Funktion _assert ruft abort auf und gibt die folgende Meldung auf stderr aus:

Assertion failed: test, file filename, line linenum

Die in der Meldung angebenen Platzhalter Dateiname und Zeilennummer stehen für den Dateinamen und die Zeilennummer der Quelltextdatei, die das Makro assert enthält.

Wenn die Direktive #define NDEBUG ("nicht Debuggen") vor der Direktive #include <assert.h> in die Quelltextdatei eingefügt wird, dann wird das Makro zu einer Anweisung erweitert, die keine Operation durchführt, weil die assert-Anweisung dann auskommentiert wird.

Rückgabewert

Keiner.

Portabilität

POSIX ANSI C ANSI C++ Win32 Win64 macOS
assert + + + +

Beispiel

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>

struct ITEM {
    int key;
    int value;
};

/* Item der Liste hinzufügen, sicherstellen, dass die Liste nicht Null ist */
void additem(struct ITEM *itemptr) {
    assert(itemptr != NULL);
    /* Item der Liste hinzufügen */
}

int main(void) {
    additem(NULL);
    return 0;
}