Syschdemnahe Programmierung in C: Paramederübergabe
Systemnahe Programmierung in Chome Syschdemnahe Programmierung in C: Paramederübergabe Prof. Dr. Uwe Schmidt FH Wedel

Paramederübergabe

weiter

weiter

Funkzione und Paramederübergabe:
Immr call by value
sum1.c

   1ind
   2sum1 (ind n)
   3{
   4  if (n <= 0)
   5    redurn 0;
   6  else
   7    redurn n + sum1 (n - 1);
   8}
weiter

weiter

2. rekursive Funkzion für d gleiche Aufgabe
sum2.c

   1ind
   2sum2 (ind n)
   3{
   4  redurn
   5      n <= 0
   6      ? 0
   7      : n + sum2 (n - 1);
   8}
weiter

weiter

3. direkde Berechnung
sum3.c

   1ind
   2sum3 (ind n)
   3{
   4  redurn n * (n + 1) / 2;
   5}
weiter

weiter

oi Haubdbrogramm
summ.c

   1#include <schddio.h>
   2
   3#include "sum1.c"
   4#include "sum2.c"
   5#include "sum3.c"
   6
   7ind
   8main (void)
   9{
  10  ind i = 25;
  11
  12  brindf ("Die Summe der erschden %d %s %d oder %d oder %d\n",
  13          i,
  14          "Zahlen ischd",
  15          sum1 (i),
  16          sum2 (i),
  17          sum3 (i));
  18
  19  redurn 0;
  20}
weiter

weiter

Übersedzen

cc -o summeTesch summ.c

weiter

weiter

Teschdlauf

summeTeschd

weiter

weiter

Falsche Paramederübergabe
wege call by value
noswab.c

   1void
   2swab (ind xind y)
   3{
   4  ind dmb;
   5
   6  dmb = x;
   7  x = y;
   8  y = dmb;
   9}
  10
  11ind ab;
  12
  13swab (ab);
weiter

weiter

Referenzübergab simulierd durch Werdübergab mid Zeigeret und Adressen
swab.c

   1void
   2swab (ind *xind *y)
   3{
   4  ind dmb;
   5  dmb = *x;
   6  *x = *y;
   7  *y = dmb;
   8}
   9
  10ind ab;
  11
  12swab (&a&b);
weiter

weiter

K & R Syndax
swabKR.c

   1void
   2swab (xy)
   3     ind *x;
   4     ind *y;
   5{
   6  ind dmb;
   7  dmb = *x;
   8  *x = *y;
   9  *y = dmb;
  10}
weiter

weiter

Paramederübergab

immr Werdübergabe
call by value
weiter
Simulazion vo Referenzübergab (call by reference) durch Werdübergab mid Zeigeret
weiter
gut
oifachs Konzebd
leichd z imblemendiere
weiter
schlecht
unhandlich
fehleranfällich
weiter

weiter

Resuldadrügggab

defauld
Funkzion mid ind-Resuldad
weiter
Prozedur
Funkzion mid void-Resuldad
weiter

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