Forum: Mikrocontroller und Digitale Elektronik Reentrant - was muss wo liegen


von Klaus Martins (Gast)


Lesenswert?

Hallo,
damit eine Funktion wiedereintrittsfähig wird, was muss ich da genau 
beachten? Lokale Variablen liegen doch auf dem Stack!? Heißt das, dass 
ich lediglich referenzen auf globale Variablen innerhalb einer Funktion 
vermeiden  muss, damit diese "reentrant" wird? Habe in meinem Skript 
allerdings gelesen, dass wenn man eine Funktion reentrant machen möchte, 
man auf "lokale" Variablen verzichten muss. Was wird damit wohl gemeint 
das?
Wo liegen dann die Funktionparamter?

Vielen Dank!

von 1234 (Gast)


Lesenswert?

Richtig. Keine globalen Variablen. Lokale Variablen sind ok.

von Unbekannter (Gast)


Lesenswert?

Was bei unüberlegten Benutzung Ärger macht, sind Schreibzugriffe auf 
statische oder globale Variablen, oder Lesezugriffe auf statische oder 
globale Variablen die von ausserhalb der Reentranten-Funktion verändert 
werden.

Für den Anfang färst Du mit lokalen Variablen, also auf dem Stack 
abgelegte, zu 100% sicher.

von Klaus Martins (Gast)


Lesenswert?

Hmm jetzt bin ich nicht schlauer,
ihr sagt "keine globalen Variablen" und die Wikipedia sagt keine lokalen 
Variabeln :

http://en.wikipedia.org/wiki/Reentrant

Was stimmt nun?

von yalu (Gast)


Lesenswert?

> ihr sagt "keine globalen Variablen" und die Wikipedia sagt keine
> lokalen Variabeln :

Wo steht das in dem Artikel? Ich habe nichts dergleichen gefunden.

Dafür steht da, dass keine statischen (globalen) nichtkonstanten Daten
verwendet werden dürfen. Das entspricht doch genau dem, was die
Vorposter geschrieben haben, oder?

Beitrag #5787714 wurde von einem Moderator gelöscht.
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.