Warum Var = 0?

Gast #3034615
Lesenswert?

int zaehler = 0;

int main( void )
{
  zaehle();
  for (;;)
  {
   ...
   tueetwas();
   ...
  }

}

void zaehle(void)
{
  zaehler = 34;
}

void tueetwas(void)
{
printf(" %1",zaehler)
}

Hallo Leute das ist vereifacht mein Programm.
Ich habe ein verständnissproblem mit der gültigkeit von Variablen.
nach meinem Verständniss müsste jedesmal wenn tueetwas() aufgerufen 
wird,
die ausgabe 34 kommen. Leider ist sie immer 0.
KLeine Syntaxfehler bitte ich zu verzeihen, da ich das Programm auf das 
wesentliche gekürzt habe und aus meinem Gedächtnis einfach runtergetippt 
habe.
Kann mir jemand helfen. und sagen wie man das Problem in den Griff 
bekommt?
Warscheinlich sind Pointer die lösung (sind die nicht immer die 
lösung???)
leider habe ich trotzdem keine idee wie ich das lösen soll.

Liebe Grüße

Dirk
Gast #3034638
Lesenswert?

Mach es mir doch nicht so schwer.

Mein dargestelltes Codesekment habe ich schnell runtergetippt.
Es soll eigentlich nur zeigen das ich vor der Endlosschleife einer 
Variablen einen Wert zuweise, der dann nicht mehr geändeert wird.
In einer anderen Funktion will ich diese variable wieder nutzen. Leider 
hat das nicht funktioniert, deshalb habe ich sie mir zur fehlersuche 
ausgeben lassen.
Und siehe da anstatt 34 ist sie immer 0.
Gast #3034642
Lesenswert?

Zeig uns einfach deinen RICHTIGEN Sourcecode.

Vielleicht hast Su ja was wie
1
void zaehle(void)
2
{
3
 int zaehler = 34;
4
}

geschrieben - und siehst das auch nur als "kleinen Syntaxfehler".
Ist es aber nicht.
Also - zeige den wirklichen Source - sonst hilft alles raten nichts.
Moderator (Firma: Titel) Persönliche Seite #3034674
Lesenswert?

Dominik S. schrieb:
> So wie es oben steht passt alles (mit Ausnahme ...)
Dann liegt das Problem auserhalb der geposteten Zeilen.

Bei mir geht das nämlich: http://codepad.org/q0RW80Bw

Mach mal einen compilierbaren Dreizeiler, der bei dir den Fehler 
hervorruft. Dann sagst du noch, welche Toolchain und welche 
Zielplattform du verwendest und wie du feststellst, dass da 0 drin 
steht.

Du könntest natürlich auch einfach mal Schritt für Schritt 
durchdebuggen...

Ach ja, noch was:
Quelltext bitte in die passenden Tokens einbinden (siehe Screenshot).
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren