[Powered by Google Translate] DAVID DICIURCIO: So ein wichtiges Konzept in erfassen Programmierung ist der Begriff der Umfang. Scope kann als Kontext, in dem eine Variable definiert werden sichtbar oder zugänglich. Zum Beispiel, sagen wir mal haben wir eine Funktion, Haupt-, das heißt soll eine Variable x, 1-2 inkrementieren. Wie wir sehen können, initialisiert wichtigsten x um eins, druckt aus einem Text, dann läuft die Funktion Inkrement, bevor Bedrucken mehr Text. Wenn diese Funktion wurden um korrekt zu funktionieren, wäre es auszudrucken x als 2. Lass es uns versuchen. Also, wie Sie sehen können, ist Haupt nicht, was wir zu erwarten. Es gibt den Wert 1, sondern als die 2 erwartet. Der Grund für diesen Fehler kann durch Umfang erklärt werden. In der Funktion main, initialisiert wir x nur innerhalb der Funktion. Mit anderen Worten wird die Variable x lokal innerhalb der angegebene Funktion main, und ist nicht zugänglich außerhalb der Funktion. Nur wichtigsten zugreifen kann x in dieser Situation. Wenn wir Inkrement nennen wir nicht passieren x als Eingang, aber nur eine Kopie von x. Als Ergebnis davon ist die Funktion fügt nur Inkrement der Wert 1 an eine Kopie des Werts von x. Aber nicht X selbst. Wenn wir zur Hauptseite zurückkehren, hat x selbst überhaupt nicht verändert. So Ausdruck x liefert nur den Wert 1. Na, dann, dass Bleibt die Frage: Wie sollen wir beheben diese Funktion? Eine Lösung wird mit Inkrement einen Wert zurückgeben. Auf diese Weise wird die Funktion Inkrement uns wieder eine ganze Zahl. Also hier ist unsere überarbeitete Code mit den alternative Inkrement-Funktion. Hier haben wir statt kehrte die x + 1, anstatt nur Ende wobei x gleich x + 1. Auch nehmen bemerken, dass wir die Ausgabe ersetzt Inkrement, zuvor nichtig, mit int, die besagt, dass Inkrement wird nun passieren wieder einen Integer-Wert. Jetzt, nach Inkrement läuft, wird es mit einem Wert von zurück 2, genau so, wie wir wollten. Eine andere Situation, die Spielraum Bedeutung zeigt in scopeloop.c. In diesem Code haben wir eine for-Schleife, in der die Variable Insgesamt wird während jedes Schritts initialisiert. Leider funktioniert dieser Code nicht kompilieren. Dies ist, weil die Variable Gesamt tatsächlich nicht existiert außerhalb der for-Schleife. Variablen innerhalb von Schleifen erklärt existiert nur innerhalb der Schleife selbst und ist in unserer Fehler nachgewiesen Nachricht, insgesamt Schwarzarbeit. Die Variable insgesamt ist noch im Rahmen deklariert werden der Funktion main. Ferner ist bei jeder Iteration der for-Schleife, wir sind Reinitialisierung unserer gesamten auf 0 gesetzt. Dies allein nicht halten Sie den Code aus kompilieren, aber es würden insgesamt von immer Summierung auf einen Wert letzten 1 zu verhindern. Auch, was ist der beste Weg, um dieses Problem beheben? Einer der einfacheren Methoden gehört es, insgesamt lokal die Funktion, Haupt-und nicht an die Schleife sich. Dies wird insgesamt tatsächlich erhöhen und letztendlich damit sie nach der for-Schleife gedruckt werden. Eine andere Technik, die ich nur kurz zusammenfassen werde würde werden die Verwendung von globalen Variablen. Globale Variablen sind Variablen, die vor main deklariert werden das behalten ihren Wert während des gesamten Programms. Natürlich können die Funktionen ändern Sie den Wert eines globalen, aber sie gehen nicht out of scope wie lokale Variablen. Allerdings mit globalen Variablen tendenziell verpönt nach wie schlechtes Design, da gibt es bessere Möglichkeiten, Austausch von Daten zwischen den Funktionen. Zum Beispiel mit Zeigern. Aber mehr dazu ein andermal. Schließlich ist es wichtig, ein Verständnis von Umfang haben im Kontext der Speicher des Computers oder RAM. Wenn wir ein Programm auszuführen, lokale Variablen und Funktionen an einer bestimmten Stelle in das zugesetzte RAM genannt Stack. Als Funktionen geben, die Stack-Frames der Variablen effektiv aus dem Stapel somit mehr Speicher entfernt. So bei der Überprüfung Umfang, merken Sie sich diese drei Kernpunkte. Einer, der Umfang kann entweder lokal oder global. Es hängt von dem die Variable deklariert. Zwei Variablen deklariert oder in Funktionen initialisiert werden lokal für diese Funktion und kann nicht von anderen geändert werden Funktionen, zumindest nicht ohne Hilfe von Zeigern. Schließlich sind auch Variablen lokal zu Schleifen, die sich deklarierten. Die Variablen sind nicht zugänglich außerhalb der Schleife. Das ist alles für jetzt Anwendungsbereich. Danke fürs Zuschauen.