kleine Frage: Sind statische lokale Variablen möglich?

Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

kleine Frage: Sind statische lokale Variablen möglich?

 · 
Posted: 07.07.2014 - 13:38  ·  #1
Hallo,

Eine Funktion Counter soll die Anzahl Ihrer Aufrufe zurückgeben.
Dazu muss sie die Anzahl der Aufrufe statisch speichern können. Die Lösung mit einer globalen
Variablen, hat den Nachteil, dass globale Variable überall sichtbar sind.

Ich suche das Pascal-Pendant zum "c"-Schlüsselwort static.

"unschöne" Lösung mit einer globalen Variablen:
Code

var
    staticVarCount : Byte;

function counter : Byte
begin
    staticVarCount := staticVarCount +1;
    return(staticVarCount);
end;


"schöne" Lösung als Pseudocode:
Code

function counter : Byte
var
    static count : Byte; // soll statisch sein
begin
    count := count + 1;
    return(count);
end;


Vielen Dank für Hilfe
Thomas.AC
Merlin
Administrator
Avatar
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: kleine Frage: Sind statische lokale Variablen möglich?

 · 
Posted: 07.07.2014 - 14:53  ·  #2
Hi Thomas.

I want to do this all the time :-)

The answer is not too difficult. Put the function and variable into a separate unit and define the variable after the implementation statement. The variable is only visible within the unit.
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: kleine Frage: Sind statische lokale Variablen möglich?

 · 
Posted: 08.07.2014 - 15:01  ·  #3
units are propably the only solution. Sometimes a little overkilled.
Now I am sure that there is no secret feature in AVRco for this. :-)

Thanks for your reply.

Thomas from Aachen
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   65   79 · Page-Gen-Time: 0.032711s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI