Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » variablen global ? speichern -- anfaenger

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.10.2004, 17:38 Uhr
~arz
Gast


hallo,
ich hab eine main funktion, diese ruft in regelmaessigen intervallen eine funktion in einer klasse auf und uebergibt eine variable.


die aufgerufene funktion sieht grob so aus, var kommt aus main:

int var, tempvar, differenz;

if (kbhit()){
differenz = var - tempvar;
}
else {
tempvar = var;}

dh bei gedrueckter taste soll die differenz zwischen der aktuellen einkommenden variable var und der "gemerkten" variable tempvar gebildet werden.

dummerweise wird tempvar, wenn eine taste gedrueckt ist beim aufruf ueberschrieben bzw initialisiert. wie kann ich das verhindern oder anderst, wo muss ich mir tempvar merken, damit die variable nicht mit jedem aufruf initialisiert wird.
gibt es sowas wie globale variablen? wo muss ich die initialisieren? oder kann ich aus der aufgerufenen funktion eine variable in main speichern? wie wuerde das gehen ??

ist wahrscheinlich ne dumme frage aber wie gesagt ,, bin anfaenger und dankbar fuer jede antwort ...

gruz ho.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.10.2004, 18:03 Uhr
Oliver
S2-Pixelgeneral


Deklariere am besten eine static Variable, guck mal in den FAQ, da steht glaube was dazu...
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: