Assert in C [] (Assert in C), Lektion, Seite 723336
https://www.purl.org/stefan_ram/pub/assert_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Annahmen in C 

Einführendes Beispiel

Eine Annahme bricht das Programm mit einer Fehlermeldung ab, wenn ihr Ausdruck den Wert »0« hat.

main.c
#include <assert.h>

int main( void ) { assert( 0 ); }
Konsole (Ausgabe ähnlich)
Assertion failed!
File: main.c, Line 4

Einleitung

Durch eine assert-Anweisung (Annahmeanweisung, kurz: Annahme) kann die Wahrheit einer Aussage festgehalten werden.

Die assert-Anweisung veranlaßt den Abbruch des Prozesses, falls ihre Aussage (Annahmeausdruck, kurz: Annahme) falsch sein sollte. So können Annahmen, welche der Programmierer macht, also Erwartungen des Programmierers, auf verständliche Weise festgehalten und auf wirkungsvolle Weise überprüft werden.

Diese Anweisung ist für die Überprüfung von Annahmen während der Entwicklung gedacht. Wenn ein Programm zu einem Kunden ausgeliefert wird, könnten die assert-Anweisung entfernt werden.

Syntax

     .------.      .-.     .----------.     .-.      .-.
--->( assert )--->( ( )--->| Ausdruck |--->( ) )--->( ; )--->
'------' '-' '----------' '-' '-'

Semantik (vereinfacht)

Falls der Wert des ersten Ausdrucks 0 ist, wird das Programm mit einer Fehlermeldung abgebrochen.

Beispiel

In dem folgenden Programmbeispiel erlaubt die assert-Anweisung es, zu erkennen, wenn eine Funktion gegen ihren Kontrakt mit 0 aufgerufen wird.

main.c
#include <assert.h>
#include <stdio.h> /** @brief Ergibt den Kehrwert des Argumentwertes
@param i darf nicht 0 sein
@return Kehrwert des Argumentwertes
@pre i ist nicht gleich 0 */
int kehrwert( int const i )
{ assert( i ); /* Vorbedingung */
return 1 / i; } int main( void )
{ printf( "%d\n", kehrwert( 1 ));
printf( "%d\n", kehrwert( 0 )); }
Konsole
1
Assertion failed!

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723336 stefan_ram:723336 Assert in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723336, slrprddef723336, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/assert_c