mikrocontroller.net

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


Autor: Klaus Martins (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: 1234 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Keine globalen Variablen. Lokale Variablen sind ok.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Martins (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.