002
26.10.2004, 01:25 Uhr
Hans
Library Walker (Operator)
|
Hi,
ungetestet, bzw. quick & dirty gebastelt:
C++: |
#include <stdio.h>
int funk(int);
int main() { int c, t;
printf("Demoprogramm für eine Funktion, die zählt, wie oft sie aufgerufen wurde.\n"); printf("Leertaste = Funktion aufrufen\n"); printf("Return oder Entertaste = Programm beenden\n");
t=0; do { c = getchar(); if (c==' ') t += funk(1); if (c=='\n') c=0; /* Abbruchbedingung gültig machen */ } while(c);
printf ("Funktion %2d mal aufgerufen.\n", t); return 0; }
int funk(int z) { static int i; /* static, damit die Variable erhalten bleibt, wenn die Funktion verlassen wird. */
i=i+z; printf ("*");
return i; }
|
Das Prinzip, wie eine Variable in Funktionen dauerhaft gespeichert wird, d.h. so das der Wert bis zum nächsaten Aufruf erhalten bleibt, ist korrekt, nur die Berechnung, die ich da anstelle, und was er als Ergebniss ausspuckt, stimmt nicht so recht...
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |