Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Variablen deklarieren Kategorie: Programmierung (von André H. - 18.08.2005 17:22)
Als Antwort auf Re: Variablen deklarieren von CC2-Clereker - 18.08.2005 16:30
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo,

> du hast dieselben Variablen und willst sie in mehreren Threads nutzen...das geht zwar irgendwie gut,
> aber wenn die Threads parallel ablaufen, kommt nur Mist raus. Wenn du aber darauf bestehst,
> weil du das ganze schleifenmäÃ?ig oder so ablaufen lassen willst, setzt du sie in  ...

Sorry, das ist nicht korrekt.
Solange nur ein Thread schreibend auf eine Variable zugreift und alle anderen Lesen,
muÃ? nichts gecaptured werden, und es geschieht auch mein "Mist".
Ein Bsp. wäre ein Thread, der Sensoren auswertet und die Daten in Variablen
für andere Threads bereitstellt.

> Die anderen warten setzen eine Runde aus oder überspringen den Vorgang (keine Ahnung)

Wenn letzteres so wäre, wären die Folgen Katastrophal !
Die VM überspringt nie irgendwelchen Code, sonder wartet natürlich auf die Freigabe.


> Weiterhin erfolgt die Deklarierung, wenn sie lokal sein soll, nach deinem Funktionsaufruf. Wenn
> sie global sein sollen, natürlich davor.

Das stimmt auch nicht.
Solange eine Variable innerhalb einer Funktion, welche auch eine andere Aufrufen kann,
oder innerhalb eines Threads definiert wird, ist sie immer lokal.
Nur, wenn Variablen auÃ?erhalb von Funktionen und Threads definiert werden, sind sie global.

> Lokale variablen:   Deklarierung in der Funktion bzw. im Thread
> globale Variablen: Deklarierung entweder ganz oben vor allem oder in der main Thread

Erste Zeile stimmt.
Zweite nicht. Egal, in welcherm Thread eine Variable definiert wird, sie ist immer lokal.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: