Funktionen in C, Globale und lokale Variablen
Kategorien: MikrocontrollerIn einem der vergangenen Artikel habe ich ja schon gezeigt, welche Variablen es in der Programmiersprache C gibt.
Beim Umgang mit Variablen und Funktionen stellt sich häufig die Frage, auf welche Variablen kann eine Funktion zugreifen, mit welchen Variablen kann eine Funktion arbeiten.
Wozu Gültigkeitsbereiche
Häufig möchte man gar nicht, dass jede Variable von jeder Funktion änderbar ist. Stell Dir vor mehrere Programmierer arbeiten an einem Projekt und müssten sich einigen, wer denn seine Inter-Variable „i“ nennen darf.
Oder noch schlimmer: Man nutzt Funktionen aus einem anderen Projekt und müsste bevor man selbst programmiert, alle Programme durchforsten ob die Variable „Wert“ schon einmal genutzt worden ist.
Um dies zu verhindern unterscheidet man zwischen globalen Variablen, die global, also im gesamten Programm gelten und lokalen Variablen, die einen beschränkten Gültigkeitsbereich haben.
Speicherorte von Variablen
Welche Variablen global sind und welche lokal sind, versteht man am besten, wenn man sich einmal anguckt, in welche Speicherbereiche die Variablen vom Compiler/Linker bzw. vom Mikrocontroller abgelegt werden.
Globale Variablen kann der Compiler bei der Erstellung des Programms in den Datenbereich ablegen. Bei lokalen Variablen ist bei der Übersetzung des Programms nicht bekannt, wie häufig (oder ob überhaupt) diese Variablen benötigt werden.
Im folgenden Video zeige ich daher zunächst, wie der Compiler bzw. während der Ausführung der Mikrocontroller Variablen behandelt.
Nachdem Du nun gesehen hast, wo Compiler und Mikrocontroller die Variablen verwalten, möchte ich im nächsten Video einige Beispiele zeigen.
Am besten ist nun, Du rufst auf Deinem PC die Entwicklungsumgebung auf und testet selbst einmal die Gültigkeitsbereiche von Variablen.
Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]
|
Ähnliche Artikel
Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:
Keinen passenden
|
Was machen Compiler und Linker ? Im heutigen Artikel geht es um das Übersetzen eines C-Programms. Ein C-Programm wird zunächst einma...
Äquivalenz und Antivalez (XOR) Heute soll es um die letzten Gatter gehen, die ich in diesem Kurs vorstellen möchte. Es gibt zwar no...
Realisierung von XOR in Logiflash Heute geht es nun darum, eine Antivalenz-Schaltung mit Hilfe der Grundgatter aufzubauen. Hierbei sol...
Funktionen in C, Parameterübergabe In der letzten Folge hatte ich bereits erläutert, wie Compiler und Linker und anschließend auch das ...



... dann hilft vielleicht 

Mein Name ist Wolfgang Bengfort. Ich bin Lehrer für Elektrotechnik und Technische Informatik und habe im September 2009 diese Seite gestartet. 
Hallo und vielen Dank für die Videos.
Wir haben zwar in der Schule auch gelernt, dass man auf lokale Variablen nur innerhalb einer Funktion zugreifen kann, aber nicht warum?
Das mit dem Stack ist eine gute Erklärung. Danke!