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 | ||
| ||
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: |