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:14)
Als Antwort auf Variablen deklarieren von MarkusNRW - 16.08.2005 20:23
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Markus,

> Ich habe mal eine allgemeine Frage zu den Variablen! Bin im Moment dabei ein Programm aufzubauen
> wo ich schon einige Threads habe! Ich habe mehrere Threads wo ein Drehgeber abgefragt wird,
> Variablen wie Maxwert, Minwert, Cursorposition sind bei diesen verschieden! Kann ich diese trotzdem
> immer den selben Namen geben?

Natürlich geht das.
Bei lokalen Variablen gibt es hier keinerlei Einschränkungen.
Es darf auch mehrere gleichlautende globale Variablen geben, solange sie nur
einmal pro Modul vorkommen.
Das ist möglich, da C2, anders als C, strukturiert aufgebaut ist. Um eine globale Variabel
aus anderen Modulen aufzurufen, muÃ? daher immer der Modulname vorangestellt werden.

> Soweit habe ich das Programm auch aufgebaut... Werden die Variablen eigentlich in meinem
> Nebenthread vor dem Aufrauf oder nach dem Aufruf deklariert??

Das kommt darauf an, wo Du die Variablen definierst.
Dazu muÃ? man aber wissen, daÃ? sich lokale Variablen auf dem Stack befinden.
Bei einem Funktionsaufruf mit Parametern werden vor dem eigentlichen Aufruf
die übergebenen Werte auf den Stack geschoben.
Wird eine Variable in einer Funktion definiert, wird der Stackpointer an dieser Stelle
entsprechend erhöht.

> meine vor z.B.  function abfrageDrehgeber1 (); oder nach dieser Zeile?

Ich sehe hier keine Variabeldefinition.

> So, bisher haben wir nur lokale Variablen gesprochen!
> Wie läuft dass mit globalen die ich überall nutzen will? Muss ich diese im thread Main deklarieren?
> Werden diese anders deklariert dass der Compiler weiÃ? es ist eine globale??

Nein. Technisch gesehen, sind innerhalb von Threads definierte Variablen auch lokale.
Sie haben nur globalen Charakter, da der Stackpointer nie so weit zurückgesetzt wird,
da� der Speicherplatz überschrieben werden könnte.
Globale Variablen erkennt man daran, daÃ? diese auÃ?erhalb von Funktionen und Threads
definiert werden.

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: