Konstante (Programmierung)

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Symbolische Konstante)
Zur Navigation springen Zur Suche springen

Eine Konstante (von lateinisch constans ‚feststehend‘) in einem Computerprogramm ist ein Behälter für einen Wert, der nach der Zuweisung nicht verändert werden kann. Das Gegenstück dazu ist eine Variable.

Konstanten haben im Quelltext meist semantische Bezeichner, was den Umgang vereinfacht und eine Verwechslung mit anderen Konstanten verhindern soll. Der Begriff wird allerdings auch für Literale verwendet (literale Konstante), die keinen semantischen Bezeichner haben. Daher ist es eindeutiger, bei frei definierbaren Konstanten von symbolischen Konstanten zu sprechen.

Vor Laufzeit bereits initialisierte Konstanten werden in diversen Hochsprachen traditionell GROSS (d. h. nur mit Großbuchstaben) bezeichnet.

Arten von Konstanten

[Bearbeiten | Quelltext bearbeiten]

Es wird zwischen verschiedenen Arten von Konstanten unterschieden.

  • Literale Konstanten
    "Hello World!"
    
  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Compiler ersetzt jedes Auftreten der Konstante durch den jeweiligen Wert.
    const string HELLO = "Hello World!";
    
  • Konstanten, welche zur Kompilierzeit festgelegt werden. Der Wert wird jedoch erst zur Laufzeit ausgelesen.
    readonly string hello = "Hello World!";
    
  • Konstanten, welche zur Laufzeit festgelegt werden.
    let hello = "Hello World!"
    
  • Meta-Konstanten, welche das Verhalten des Präprozessors steuern, jedoch kein Teil des Programms darstellen.
    #define DEBUG
    

Laufzeit-Konstanten durch Kapselung

[Bearbeiten | Quelltext bearbeiten]

In Objektorientierten Programmiersprachen besteht die Möglichkeit eine Laufzeit-Konstante nachzubilden, indem eine Variable in einem Objekt gekapselt wird und dabei ausschließlich Lesemethoden zur Verfügung gestellt werden:

public MyObject(string NAME)
{
   public string NAME { get; } = NAME;
}

In Funktionalen Programmiersprachen kann die Variable in einer Closure gekapselt werden:

public Func<string> Create(string NAME)
{
   return () => NAME;
}