Zusammenfassung V6zurück zu Vorlesung 5
Globale Variable
- dürfen (wenn nicht anders angegeben) in Prog1 nicht verwendet werden, da sie zu Seiteneffekten führen (können) !!!
- Seiteneffekte machen ein Programm unübersichtlich und führen leicht zu Fehlern.
Storage Class
Temporäre oder Auto-Variable
- Autovariable werden nur für die Ausführungszeit des entsprechenden Programmblocks in einem speziellen Bereich des Speichers, dem Stack angelegt; sie existieren zwischenzeitlich nicht im Speicher!
- In C/C++ werden lokale Variable defaultmäßig als Autovariable angelegt;
- Die Initialisierung von Autovariablen geschieht bei jeder Ausführung des entsprechenden Unterprogramms;
Permanente Variable / Static Attribut
- Lokale Variable können mit Hilfe des static Attributes permanent gemacht werden;
- Permanente Variable existieren während der gesamten Laufzeit eines Programmes; sie werden nicht auf dem Stack abgelegt.
- Die Initialisierung von static Variablen geschieht nur einmal zu Beginn der Ausführung des Programmes
Value Parameter und Reference Parameter
Value Parameter
- Im "Normalfall" werden beim Aufruf eines Unterprogramms die Werte der aktuellen Parameter in den Speicherbereich des Unterprogramms kopiert. (→call-by-value Mechanismus)
- Mittels call-by-value Mechanismus übergebene Parameter("normale" Parameter) heißen in C/C++ Value Parameter
- Value Parameter sind nur zur Übergabe von Daten an/ in das Unterprogramm geeignet sie können daher anstatt als Value Parameter (C-Terminologie) auch als in-Parameter bezeichnet werden
Reference Parameter
- Referenz-Parameter werden deklariert, indem ihrem Namen im (Unter-) Programmkopf ein & vorangestellt wird
- Durch Verwendung von Referenz-Parametern wird beim Aufruf des Unterprogrammes eine Referenz auf die als aktueller Parameter verwendete Variable des aufrufenden Programms übergeben. Man spricht daher hier auch vom call-by-reference Mechanismus.
- Referenz-Parameter können als lokaler Name im Unterprogramm für die als aktueller Parameter verwendete Variable des aufrufenden Programms (z.B. main) betrachtet werden.
- Referenz-Parameter können zur Datenübergabe an das aufrufende Programm verwendet werden; sie heißen daher auch result parameter (C-Terminologie) oder out-parameter;
- Bei Verwendung eines Referenz-Parameters zur Datenübergabe in beide Richtungen (Input → Anfangswert, output → Endwert)spricht man von einem value-result parameter (C-Terminologie)oder inout-parameter;
- Referenz-Parameter sind nicht Bestandteil des C-Subsets !
Const Parameter
- Werden durch Voranstellung des const Attributes im (Unter-)Programmkopf deklariert;
- Dürfen im Unterprogramm nicht verändert werden;
- Helfen bei der Fehlervermeidung (-> vom Compiler überprüfbare Vorgabe);
Function Overloading
- Für die Fälle, in denen die gleiche Funktion mit / für verschiedene Datentypen verwendet werden soll, bietet C++ (nicht C) die Möglichkeit, die Funktionsnamen zu überladen;
- Beim Overloading erhalten Funktionen mit unterschiedlichem Parameterprofil denselben Namen;
- Das System erkennt beim Aufruf am Typ der aktuellen Parameter automatisch, welche Version verwendet werden soll;
- Overloading vermeidet das "künstliche Erfinden" unterschiedlicher Namen für ein und dieselbe Funktion; (wie z.B. "int_demo(...)" und "double_demo(...)" statt "demo(...)" )
weiter zu Vorlesung 7
|
Zahlen & Daten
- 441 Seitenaufrufe
- 1144 Tage alt
- 2 Versionen
- Letzte Änderung: 07.05.2009 um 09:13 Uhr
Publish
|