Globale Variablen Diverses. Globale Variablen. Globale Variablen

Ähnliche Dokumente
Propädeutikum. Dipl.-Inf. Frank Güttler

Java Einführung Methoden. Kapitel 6

Deklarationen in C. Prof. Dr. Margarita Esponda

Klausur C-Programmierung / / Klingebiel / 60 Minuten / 60 Punkte

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Die Programmiersprache C99: Zusammenfassung

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Einfache Rechenstrukturen und Kontrollfluss II

Programmierung mit C Zeiger

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Repetitorium Informatik (Java)

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die C-Programmierung

Prof. W. Henrich Seite 1

Eine Einführung in C-Funktionen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Vorkurs C++ Programmierung

Übungen mit Anleitung. Hamster-Simulator. Nicola Ramagnano 23. Oktober 2011

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Java Einführung Methoden in Klassen

Modellierung und Programmierung 1

Die Algorithmenbeschreibungssprache Jana

Inhalt. 4.7 Funktionen

Modulare Programmierung und Bibliotheken

Es gibt zwei verschiedene Arten, wie Programme auf dem Rechner ausgeführt werden:

Einstieg in die Informatik mit Java

Modellierung und Programmierung

Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Einführung in die C++ Programmierung für Ingenieure

JAVA - Methoden

C.3 Funktionen und Prozeduren

Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Objektorientierte Programmierung

Computergrundlagen Programmieren in C

Erwin Grüner

Einführung in die Programmierung

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Kurzeinführung in C/C++ Elementare Datentypen in C++

Innere Klassen in Java

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr SS INSTITUT FÜR ELEKTRONIK BIT

Javakurs 2013 Objektorientierung

Einheit Variablen in der Programmiersprache C Variablen-Modell, Variablen-Vereinbarungen

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Übersicht. C Funktionen. Funktion main. Funktionen. Funktionsdefinition und und Funktionsaufruf Deklaration von Funktionen

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

Theorie zu Übung 8 Implementierung in Java

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ - Einführung in die Programmiersprache Objektorientierte Programmierung

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Java für Anfänger Teil 2: Java-Syntax. Programmierkurs Manfred Jackel

Jede der folgenden Richtlinien erlaubt Ausnahmen, die ganz im Ermessen der Autoren sind.

3 Klassen, Attribute, Methoden

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Strukturierte Datentypen und Funktionszeiger

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

1 Vom Problem zum Programm

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

Objekt-Orientierte Programmierung

Java I Vorlesung Vererbung und Sichtbarkeit

5.5.8 Öffentliche und private Eigenschaften

2 Einfache Rechnungen

Grundlagen der Programmierung in C Funktionen

Prinzipieller Grundaufbau eines einfachen C-Programmes

Vererbung & Schnittstellen in C#

Informationsverarbeitung im Bauwesen

ModProg 15-16, Vorl. 5

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Zusammengesetzte Datentypen -- Arrays und Strukturen

Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

Java - Klassen und Objekte

Algorithmen und Datenstrukturen

5.4 Klassen und Objekte

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Processing Info zu Variablen und Bedingungen

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Informatik Repetitorium SS Volker Jaedicke

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Funktionen in PHP 1/7

Rekursion. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Objektorientiertes Programmieren für Ingenieure

Grundlagen der Informatik Vorlesungsskript

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Transkript:

lokale Variablen Variablen bisher nur am Anfang von Funktionen auch erlaubt: am Anfang innerer Codeblöcke (innerhalb geschweifter Klammern) in C99 und als gcc-erweiterung: an beliebiger Stelle innerhalb einer Funktion

Sichtbarkeit und Lebensdauer von lokalen Variablen lokale Variablen können benutzt werden von Punkt ihrer Deklaration an bis zum Ende des Blocks, in dem sie deklariert wurden lokale Variablen existieren, bis der Block, in dem sie deklariert wurden, verlassen wird im Falle eines rekursiven Funktionsaufrufes existieren sie mehrmals, nur die aktuell gültigen können verändert werden

so nicht! int *somevector( void ) int v[10]; /* irgendwas mit v */ return v; /* falsch! */ Nach dem Verlassen der Funktion ist der für v angelegte Speicher wieder freigegeben und wird anderweitig benutzt. Hier muss malloc o.ä. verwendet werden.

Variablen können auch außerhalb von Funktionen (deshalb auch: externe Variablen) deklariert werden. Für diese gilt: Sie sind global sichtbar (in jeder Funktion sichtbar, sofern dort nicht eine Variable mit demselben Namen deklariert wird, wodurch die globale Variable überdeckt wird) Sie existieren während des gesamten Programmablaufes genau einmal falls keine andere Definition stattfindet, erhalten sie den Anfangswert Null

Gegenüberstellung /* lokal */ void inc(int *c) (*c)++; int main( void ) int a=0; inc(&a); /* global */ int a; void inc(void) a++; int main(void) inc();

Gegenüberstellung /* lokal */ void inc(int *c) (*c)++; int main( void ) int a=0; inc(&a); /* global */ int a; void inc(void) a++; int main(void) inc();

Globale Sichtbarkeit - Segen und Fluch vereinfachen Funktionsaufrufe, da sie dort nicht mit angegeben werden müssen. Andrerseits wird der Datenfluss verdeckt, da man dem Funktionsaufruf nicht mehr ansieht, dass ein Wert verändert werden kann. Zudem sind Funktionen, die mit globalen Variablen arbeiten, weniger flexibel. sollten sparsam eingesetzt werden. Sinnvoll sind sie vor allem für Daten, mit denen das ganze Programm arbeiten muss.

Statische Variablen Einen Kompromiss stellen statische Variablen dar. Sie werden innerhalb einer Funktion mit dem Schlüsselwort static definiert. Ihre Sichtbarkeit ist wie die von lokalen Variablen, ihre Lebensdauer und Initialisierung wie die von globalen Variablen. Eine Funktion, die zurückgibt, wie oft sie aufgerufen wurde: /* global */ int counter; int count( void ) return ++counter; /* statisch */ int count( void ) static int counter; return ++counter;

Statische Variablen Einen Kompromiss stellen statische Variablen dar. Sie werden innerhalb einer Funktion mit dem Schlüsselwort static definiert. Ihre Sichtbarkeit ist wie die von lokalen Variablen, ihre Lebensdauer und Initialisierung wie die von globalen Variablen. Eine Funktion, die zurückgibt, wie oft sie aufgerufen wurde: /* global */ int counter; int count( void ) return ++counter; /* statisch */ int count( void ) static int counter; return ++counter;

Statische Variablen Einen Kompromiss stellen statische Variablen dar. Sie werden innerhalb einer Funktion mit dem Schlüsselwort static definiert. Ihre Sichtbarkeit ist wie die von lokalen Variablen, ihre Lebensdauer und Initialisierung wie die von globalen Variablen. Eine Funktion, die zurückgibt, wie oft sie aufgerufen wurde: /* global */ int counter; int count( void ) return ++counter; /* statisch */ int count( void ) static int counter; return ++counter;

Makros als Konstanten Leere Anweisung Konstanten Anstatt eine Zahl mehrere Male im Programm stehen zu haben, ist es sinnvoller, dafür einmal eine Konstante zu definieren. Eine Möglichkeit dafür sind Makros. #define SIZE 10 int a[10]; for(i=0; i<10; i++) int a[size]; for(i=0; i<size; i++)

Makros als Konstanten Leere Anweisung Konstanten Anstatt eine Zahl mehrere Male im Programm stehen zu haben, ist es sinnvoller, dafür einmal eine Konstante zu definieren. Eine Möglichkeit dafür sind Makros. #define SIZE 10 int a[10]; for(i=0; i<10; i++) int a[size]; for(i=0; i<size; i++)

Makros als Konstanten Leere Anweisung Hinweise zu Makros für Konstanten Syntax: #define <Name> <Wert> Konvention: Name in Großbuchstaben Kein Semikolon am Ende auch sinnvoll, wenn die Konstante nur einmal im Programm auftaucht (Auch EOF und NULL sind als Makros definiert.)

Makros als Konstanten Leere Anweisung Leere Anweisung Gelegentlich braucht man, um den Syntaxregeln von C zu entsprechen, eine Anweisung, wo man gar nichts machen will. Dann kann man die leere Anweisung benutzen. Sie besteht einfach nur aus einem Semikolon. Es wird meist in einer eigenen Zeile geschrieben. while (s[len]!= \0 ) len++; while (s[len++]!= \0 ) ;

Makros als Konstanten Leere Anweisung Leere Anweisung Gelegentlich braucht man, um den Syntaxregeln von C zu entsprechen, eine Anweisung, wo man gar nichts machen will. Dann kann man die leere Anweisung benutzen. Sie besteht einfach nur aus einem Semikolon. Es wird meist in einer eigenen Zeile geschrieben. while (s[len]!= \0 ) len++; while (s[len++]!= \0 ) ;