Inhaltsverzeichnis:
Video: 01.16 - C Grundlagen - Globale und lokale Variablen 2024
Manchmal muss in der C-Programmierung eine Variable wie ein Mobilfunkdienst sein: überall verfügbar. Die Variable kann auch jederzeit von jeder Funktion verwendet werden. Dieser Variablentyp könnte als Universal Variable bezeichnet werden. Es könnte eine weltweite Variable genannt werden. Aber in C wird es als globale Variable bezeichnet.
Verwendung globaler Variablen
Globale Variablen lösen spezifische Probleme, indem sie die Variablendeklaration universell machen. Auf diese Weise kann jede Funktion im Programm auf die Variable zugreifen. Es muss nicht von einer Funktion übergeben oder zurückgegeben werden.
Werfen Sie Ihr Alter herum zeigt, wie eine globale Variable deklariert und verwendet wird. Die globalen Variablen age und float werden von beiden Funktionen beeinflusst. Sie können an diese Funktionen übergeben werden, aber beide Werte können nicht zurückgegeben werden. (C-Funktionen geben nur einen Wert zurück.) Daher wird die globale Variable als Lösung verwendet.
WERDE IHR ALTER UM
#include void half (void); Leer zweimal (nichtig); int Alter; schwimmende Füße; int main () {printf ("Wie alt bist du:"); scanf ("% d" und Alter); printf ("Wie groß bist du (in Fuß):"); scanf ("% f", & Füße); printf ("Du bist% d Jahre alt und%. 1 ft feet tall. n", Alter, Füße); Hälfte(); zweimal(); printf ("Aber du bist nicht wirklich% d Jahre alt oder%. 1 ft Füße groß. n", Alter, Füße); return (0);} Leere Hälfte (void) {float a, h; a = (float) Alter / 2. 0; printf ("Das halbe Alter ist%. 1f. n", a); h = Füße / 2. 0; printf ("Die halbe Höhe ist%. 1f. n", h);} void zweimal (void) {age * = 2; printf ("Zweimal dein Alter ist% d. n", Alter); Füße * = 2; printf ("Zweimal Ihre Höhe ist%. 1fn", Fuß);}
Zeile 6 deklariert die globale Variable int age und die Variable float feet . Dies sind globale Variablen, da sie außerhalb einer Funktion deklariert werden, oben in #include, #define und prototyping land. Die Variablen werden dann in jeder Funktion verwendet. Auf ihre Werte kann im gesamten Code zugegriffen werden. Selbst wenn diese Werte in der Funktion double () geändert werden, verwendet die Funktion main () die neuen Werte.
Beachten Sie, dass zwei printf () -Anweisungen in der main () -Funktion ihren Text in das "Tossing Your Age Around" einbinden. Sie müssen diese Anweisungen nicht in einen Texteditor einschließen. tippen Sie sie einfach alle in einer einzigen Zeile aus.
Übung 1 : Geben Sie den Quellcode für "Tossing Your Age Around" in Ihren Editor ein und erstellen Sie ein neues Programm. Baue und laufe.
Seien Sie nicht faul über die Verwendung globaler Variablen! Wenn Sie einen Wert an eine Funktion übergeben können, tun Sie dies! Es ist richtig. Zu viele indolente Programmierer deklarieren alle ihre Variablen global, um das Problem zu lösen."Das ist schlampig und unpassend.
Zu den guten Beispielen für globale Variablen gehören Informationen, die alle Funktionen des Programms kennen sollten, z. B. Benutzerinformationen oder ob Sie online sind oder ob Text angezeigt oder ausgeblendet wird. In diesem Fall sollten Sie diese Variablen stattdessen global machen.
So erstellen Sie eine globale Strukturvariable
Ein besseres Beispiel für die Verwendung einer globalen Variablen und eine Situation, in der globale Variablen vollständig erforderlich sind, ist die Übergabe einer Struktur an eine Funktion. In diesem Fall müssen Sie die Struktur als global deklarieren, damit alle Funktionen auf Variablen dieses Strukturtyps zugreifen können.
Lassen Sie sich nicht von der massiven Länge des Übergebens einer Struktur an eine Funktion einschüchtern! Die meisten "echten" Programme, die Sie letztendlich schreiben, werden viel länger sein!
ÜBERTRAGUNG EINER STRUKTUR ZU EINER FUNKTION
#include #include #include #define GRÖSSE 5 struct bot {int xpos; int ypos;}; struct bot initialize (struct bot b); int main () {Strukturroboter [GRÖSSE]; int x; srandom ((unsigned) Zeit (NULL)); for (x = 0; xUm eine Struktur an eine Funktion zu übergeben, muss die Struktur global deklariert werden, was zwischen den Zeilen 7 und 10 geschieht. Dies muss geschehen, noch bevor die Funktion prototypiert wird, was in Zeile 12 geschieht..
Die Funktion initialize () läuft von den Zeilen 30 bis 41. Die Struktur wird an die Funktion übergeben und zurückgeliefert. Beachten Sie, dass die Strukturvariable als Argument vollständig definiert sein muss. In Zeile 30 erhält die Funktion den Variablennamen b innerhalb der Funktion.
Die return-Anweisung in Zeile 40 übergibt die Struktur an die aufrufende Funktion zurück. Tatsächlich ist die Funktion initialize () als Struktur-Bot-Typ der Funktion definiert. Wert, den es zurückgibt.
Übung 2 : Schrauben Sie Ihren Mut auf den Klebepunkt und geben Sie alle diese Zeilen des Quellcodes von Übergeben einer Struktur an eine Funktion in Ihren Editor ein. Die Ausgabe zeigt, wie das Struktur-Array (ein Element nach dem anderen) an eine Funktion übergeben wurde, die in der und dann zurück.