2016-04-22 13 views
1

Beispiel in C: Statische Variablen haben die Eigenschaft, ihren Wert zu erhalten, auch wenn sie außerhalb ihres Gültigkeitsbereichs liegen. Daher behalten statische Variablen ihren vorherigen Wert in ihrem vorherigen Bereich und werden nicht erneut in dem neuen Bereich initialisiert.Erzielen einer variablen Datenkopplung mit einer Funktion in Ada (ähnlich wie statische Variablen in Funktionen in C)

Wie kann ich die gleiche Funktionalität in der Ada-Sprache erreichen, in der die Variable bis zum Ende des Progran garantiert ist, aber ihr Umfang sollte auf die Funktion beschränkt sein, wodurch auch die Datenkopplung sichergestellt wird?

+0

Pakete. Sie exportieren die Funktion, aber alle Variablen, die entweder im privaten Teil oder im Paketkörper deklariert sind, sind nur für diese Funktionen sichtbar. (Dies ist nur eine Verwendung für ein Paket.) –

+0

Was, wenn die Variable nur für eine Funktion innerhalb des Pakets sichtbar sein soll, nicht für alle Funktionen im selben Paket? –

+1

Niemand hält Sie davon ab, der Funktion ein eigenes Paket (oder Kindpaket) zu geben, wenn Sie das brauchen. –

Antwort

1

Variablen, die direkt in Paketspezifikationen und -körpern deklariert werden, behalten ihren Status bei, solange das Programm ausgeführt wird.

Sie können Variablen nicht lokal in einem Unterprogramm als solche speichern, aber Sie können ein einzelnes Unterprogramm in einem Paket deklarieren und die persistenten Variablen im Hauptteil des Pakets deklarieren.