Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

Technologie

Arten der parameterübergabe in den verschiedenen programmiersprachen


1. Java
2. Viren

1. Einleitung Durch die immer stärker werdende Modularisierung von Programmen durch Prozeduren, Funktionen
oder auch Objekte stellt sich das Problem des Informationsaustausches unter den einzelnen Modulen.
Die Module sollen von außen Informationen bekommen und auch Informationen zurückgeben können,
ohne dabei ihre Modularität zu verlieren. Dies wird in den meisten Fällen mittels Parametern realisiert.
Parameter sind definierte Schnittstellen von Funktionen, die in drei Gruppen aufgeteilt werden können.
1.1 Werte-Parameter (Eingabeparameter, call by value):

Werte-Parameter dienen dazu, an eine Prozedur oder Funktion Informationen zu übergeben. Eine
Änderung des Parameters in der Prozedur hat keine Wirkung nach außen.
Eigenschaften:
. Eine Kopie der Variable wird auf dem Stack abgelegt.
. Zum Zeitpunkt des Aufrufs eines Unterprogrammes wird ein Wert (Ergebnis eines Ausdrucks) an

den Werteparameter übergeben.
. Die Veränderung der Kopie (am Stack) innerhalb der Prozedur oder Funktion hat keine
Auswirkung auf die ursprüngliche Variable.
. Im Aufruf können daher Konstanten, Variablen, Ausdrücke und Funktionswerte stehen.
1.2 Referenz-Parameter (Ein-/Ausgabeparameter, call by reference):
Referenz-Parameter haben den Zweck, Ergebnisse aus einer Prozedur oder Funktion dem aufrufend-
en Modul zur Verfügung zu stellen (Output-Parameter). In den meisten Programmiersprachen können
die Referenz-Parameter auch als Werte-Parameter verwendet werden.
Eigenschaften:
. Die Adresse der Variable wird am Stack abgelegt
. Beim Aufruf eines Unterprogrammes wird die Variable selbst verwendet, bzw. eventuell auch
verändert
. Im Aufruf können daher nur Variablen stehen, die vom selben Typ bzw. konvertierbar sind.
1.3 Funktions-Parameter:
Mit Funktionsparametern ist es möglich eine Funktion, vielmehr einen Zeiger auf eine Funktion, einem
Modul zu übergeben und dann aufzurufen. Anwendung: Menüsteuerung, Rückruffunktion, Quicksort...
Eigenschaften:
. Eine ganze Funktion/Prozedur wird als Parameter an das Unterprogramm übergeben.
1.4 Vor- bzw. Nachteile der Parameterübergabe:
Vorteile:

+ keine globalen Variable nötig, übersichtlicher

+ modulares Programmieren möglich
+ Funktionen/Module lassen sich leichter testen
+ Funktionen/Module in anderen Programmen wiederverwendbar


Nachteile:


- Gefahr bei Rekursion (Stacküberlauf)
- Geschwindigkeitsverlust
- Gefahr von eventuellen Übergabefehlern (Reihenfolge, Typ oder Anzahl)


1.5 Weitere Begriffe
Aktual-Parameter:
- Parameter, die beim Aufruf einer Funktion/Prozedur angegeben werden.
- z.B. funktion(4177)  4177 ist Aktual-Parameter

Formal-Parameter:
- Parameter, die in der Funktion/Prozedur verwendet werden und den Wert

des Aktual-Parameters übernehmen.
- z.B. funktion(int x)  x ist Formal-Parameter

1.6 Übersicht der Parameterübergaben:


Ansi-C C++ Java V-Basic (bis 4.0) Cobol

Werte-Parameter
Variable-Parameter

Funktions-Parameter ja
ja (Array)
ja ja
ja
ja ja
ja (nur bei Obj.)
nein ja
ja
nein nein
ja

nein
2. Parameterübergabe in den verschiedenen Programmiersprachen

2.1 Ansi-C
. Keine \"echten\" Variable-Parameter möglich (mit Zeigern arbeiten und Adresse der Var. übergeben)

. Array / Strings sind Zeiger
void fu (int a, int *b)

{

a = a + 1;
*b = a;

} Aufruf:
fu(a, &b); // a=2, b=0

printf(\"%d\", a); // a=2
printf(\"%d\", b); // b=3
. Funktions-Parameter anhand eines Beispiels:
typedef int (*FZ) (int,int); // Funktions-Zeiger Deklaration
void aufruf (FZ);

int add (int a, int b);
int sub (int a, int b);

void main (void)

{

FZ fu;

fu = add; // Funktion add wird dem Funktions-Zeiger zugewiesen

aufruf (fu); // Ausgabe: 30

fu = sub; // Funktion sub wird dem Funktions-Zeiger zugewiesen

aufruf (fu); // Ausgabe: 10

}
void aufruf (FZ fu)

{

printf(\"\\n %d \\n\", (*fu) (20,10));

}
int add (int a, int b)

{

return(a + b);

}
int sub (int a, int b)

{

return (a - b);

}
2.2 C++
. Referenzen ermöglichen Variable-Parameter
void fu (int a, int &b)

{

a = a + 1;
b = a;

} Aufruf:

fu (a, b); // a=2, b=0
cout

 
 

Datenschutz
Top Themen / Analyse
indicator Wozu PGP
indicator Homepage-
indicator Zusammenfassende Bewertung des Lernspiels "PHYSIKUS"
indicator Entwicklung und Geschichte:
indicator Information Engineering
indicator What is a trojan horse and what are it's capabilities?
indicator Problemteil
indicator Floppy:
indicator Der i486DX lebt noch einmal auf
indicator Präprozessor


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution