assert

Aus RAD Studio (Deutsch)
Wechseln zu: Navigation, Suche

Nach oben zu assert.h - Index


Header-Datei

assert.h

Kategorie

Diagnoseroutinen

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 fehlerhaft: Test, Datei Dateiname, Zeile Zeilennummer

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.

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



Portabilität



POSIX Win32 ANSI C ANSI C++

+

+

+

+

In anderen Sprachen