In derInformatik undProgrammierung ist eineDeklaration die Festlegung vonDimension,Bezeichner,Datentyp und weiteren Aspekten einerVariable oder einesUnterprogramms. Durch die Deklaration wird dem Übersetzer (Compiler oderInterpreter) diese Variable bzw. dieses Unterprogramm bekannt gemacht; es ist damit möglich, diese an anderen Stellen im selbenQuelltext zu verwenden.
Häufig werden die Ausdrücke Deklaration undDefinition mit der allgemeinen Bedeutung „Daten/Datenstrukturen/Datentypen festlegen/beschreiben“ als Synonyme verwendet. Beispiele siehe „eigene Datentypen definieren“ in,[1] „definierte Variable“ in[2] oder „definieren einer Klasse“ inKlasse.
Programmiersprachenabhängig werden diese Begriffe jedoch zum Teil auch unterschiedlich verwendet. So werden zum Beispiel in Haskell per Deklaration auch Funktionen spezifiziert,[1] in den Programmiersprachen C++ und C wird dies ‚Definition‘ genannt.[2] ‚Definition‘ wird dabei als Sonderfall der Deklaration verstanden. 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 alsPrototyp bezeichnet.
Bei der Referenzierung einer deklarierten (nicht definierten) Variable bzw. Unterprogrammes überprüft derLinker, 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 einAusdruckzugewiesen werden. Neben der expliziten Deklaration gibt es in einigen Programmiersprachen (z. B.Fortran,BASIC,PL/I) aber auch die Möglichkeit einerimpliziten Deklaration von Variablen: In diesem Fall führt das erste Auftreten einer Variablen zu einer automatischen Typzuordnung.
Das folgende Beispiel in der ProgrammierspracheC deklariert und definiert die Variablex mit dem Datentypint.
intx;
Im nächsten Beispiel bewirkt das Schlüsselwortextern, dass die Variabley nur deklariert, aber nicht definiert wird. Die Definition muss an einer anderen Stelle in derselben oder einer anderen Quelltext-Datei erfolgen.
externinty;
Das dritte Beispiel deklariert das Unterprogrammexample1, ohne es zu definieren. Es besteht lediglich aus dem sogenannten Funktionskopf (Funktionsprototyp, oder auchSignatur des Unterprogramms).
intexample1(char*c);
Im nächsten Beispiel wird das Unterprogrammexample2 deklariert und definiert. In geschweiften Klammern steht der sogenannte Funktionskörper oder Funktionsrumpf, der den Quelltext des Unterprogramms enthält.
intexample2(inta,intb){returna*b;}
Im folgenden Codebeispiel werden in der ProgrammierspracheCOBOL dieVariablen einer ‚Tabelle‘ – einerDatenstruktur vom Typ 'Array' – definiert/deklariert. Diese sind mit für das jeweilige Datenformat geeignetenAnweisungen sowie einem sogenannten ‚Index‘ (dessen Inhalt meist innerhalb einerSchleife gesetzt und kontrolliert wird) anzusprechen:
* Im Datenteil des Programms: (mit '*' beginnende Anweisungen/Texte gelten als Kommentare)01TAB_PRODUKT.**DiegesamteDatenstruktur:02PRODUKTOCCURS100.*Datenfür1Produkt;dieStrukturkann100-malauftreten03NUMMERPIC 9(5)*Numerisch5Stellen03NAMEPIC X(25).*Alphanumerisch25Stellen03PREISPIC 9(5)V99Comp-3.*Numerisch-gepackt5Stellen+2Dezimalstellen(4Bytes)* Im Befehlsteil des Programms: ** Summieren des Preises aller vorhandenen ProdukteIFNUMMER(INDEX)<>0*Nullbedeutet(hierimBeispiel)'nicht belegt'ADDPREIS(INDEX)TOSUMME_PREISELSE...