Systemnahe Programmierung in Chome Systemnahe Programmierung in C: Zusicherungen Prof. Dr. Uwe Schmidt FH Wedel

Zusicherungen

weiter

weiter

Selbsttestende Programme durch Zusicherungen (assertions): divide.c

   1#include <assert.h>
   2
   3/* Division mit Rest
   4   Rest als Referenzparameter
   5*/
   6
   7int
   8divide (int xint yint *rest)
   9{
  10  assert (<= x);              /* die Vorbedingungen */
  11  assert (< y);
  12  {
  13    int q = 0;
  14    int r = x;
  15
  16    while (!(r < y))
  17      {
  18        q = q + 1;
  19        r = r - y;
  20      }
  21
  22    assert (x == q * y + r);    /* die Nachbedingungen */
  23    assert (<= r);
  24    assert (r < y);
  25
  26    *rest = r;
  27    return q;
  28  }
  29}
  30
  31int
  32main (void)
  33{
  34  int qr;
  35
  36  q = divide (5, 3, &r);
  37  q = divide (5, 0, &r);
  38
  39  return 0;
  40}
weiter

weiter

Übersetzen

cc -Wall -o assertTest divide.c

weiter

weiter

Testlauf

assertTest

weiter

weiter

man page

man assert

weiter

Letzte Änderung: 11.01.2007
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel