Zum Inhalt springen

Deklaration (Programmierung)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 17. Oktober 2010 um 13:13 Uhr durch IrrwahnGrausewitz (Diskussion | Beiträge) ("Compiler" durch (allgemeiner) "Übersetzer" ersetzt; Beispiele auf das Wesentliche reduziert; Weblinks, Literatur). Sie kann sich erheblich von der aktuellen Version unterscheiden.

In der Informatik und Programmierung ist eine Deklaration die Festlegung von Dimension, Bezeichner, Datentyp und weiteren Aspekten einer Variablen oder eines Unterprogramms. Durch die Deklaration wird dem Übersetzer (Compiler oder Interpreter) diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit zulässig, diese an anderen Stellen im selben Quelltext zu verwenden.

Häufig werden die Begriffe Deklaration und Definition gleichgesetzt. Die Definition ist allerdings ein Sonderfall der Deklaration. Bei Variablen spricht man von Definition, wenn der Übersetzer Code erzeugt, der entweder statisch (im Datensegment) oder dynamisch (zur Laufzeit) Speicherplatz für diese Variable reserviert. Bei Unterprogrammen spricht man von Definition, wenn an dieser Stelle der Quelltext des Unterprogramms angegeben ist. Die Deklaration eines Unterprogramms ohne Definition wird auch oft als Prototyp bezeichnet.

Bei der Referenzierung einer deklarierten (nicht definierten) Variable bzw. Unterprogrammes überprüft der Linker, dass die Variable bzw. das Unterprogramm an anderer Stelle definiert wurde und verknüpft die Referenzen mit der Definition.

Erst nach der Deklaration kann einer Variablen ein Ausdruck zugewiesen werden. Neben der expliziten Deklaration gibt es in einigen Programmiersprachen (z. B. Fortran, BASIC, PL/I) aber auch die Möglichkeit einer impliziten Deklaration von Variablen: In diesem Fall führt das erste Auftreten einer Variablen zu einer automatischen Typzuordnung.

Beispiele

Das folgende Beispiel in der Programmiersprache C deklariert und definiert die Variable x mit dem Datentyp int.

  int x;

Im nächsten Beispiel bewirkt das Schlüsselwort extern, dass die Variable y nur deklariert, aber nicht definiert wird. Die Definition muss an einer anderen Stelle in derselben oder einer anderen Quelltext-Datei erfolgen.

  extern int y;

Das dritte Beispiel deklariert das Unterprogramm example1, ohne es zu definieren. Es besteht lediglich aus dem sogenannten Funktionskopf (Funktionsprototyp, oder auch Signatur des Unterprogramms).

  int example1( char *c );

Im letzten Beispiel wird das Unterprogramm example2 deklariert und definiert. In geschweiften Klammern steht der sogenannte Funktionskörper oder Funktionsrumpf, der den Quelltext des Unterprogramms enthält.

  int example2( int a, int b )
  {
    return a * b;
  }