Forum: Compiler & IDEs Bedeutung von static


von Peter Z. (Gast)


Lesenswert?

Hi,
ich wollte im Hauptprogramm eine lokale Variable haben, die hochgezählt 
und angezeigt wird, damit man sehen kann das der µC noch lebt und wie 
lange schon.
1
while(1)
2
{
3
  uint32_t x = 0;
4
  Hex_Anzeigen(x++);
5
  *
6
  *
7
  *
8
}
logisch, das läuft so nicht, die Anzeige bleibt bei "0" kleben.
Aber:
1
while(1)
2
{
3
  static uint32_t x = 0;
4
  Hex_Anzeigen(x++);
5
  *
6
  *
7
  *
8
}
so läuft es, die Anzeige zählt hübsch hoch.
Ist die Verwendung von static so korrekt oder ist das falsch?

von 123 (Gast)


Lesenswert?

Das ist so völlig ok.

Jetzt geht aber gleich ein Glaubenskrieg der ultimativen Art und Weise 
los ...

von Dirk B. (dirkb2)


Lesenswert?

Oder so:
1
uint32_t x = 0;
2
while(1)
3
{
4
  Hex_Anzeigen(x++);
5
  *
6
  *
7
  *
8
}

von Daniel V. (danvet)


Lesenswert?

Dirk B. schrieb:
> Oder so:
>
1
uint32_t x = 0;
2
> while(1)
3
> {
4
>   Hex_Anzeigen(x++);
5
>   *
6
>   *
7
>   *
8
> }

Oder so :-)
1
static uint32_t x = 0;
2
while(1)
3
{
4
  Hex_Anzeigen(x++);
5
  *
6
  *
7
  *
8
}

von Rolf Magnus (Gast)


Lesenswert?

123 schrieb:
> Das ist so völlig ok.
>
> Jetzt geht aber gleich ein Glaubenskrieg der ultimativen Art und Weise
> los ...

Die Frage war ja nicht, ob es schön ist, sondern ob es korrekt ist, und 
das ist es.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.