Ich komme aus C/C++ auf eingebetteten Systemen und die ganze Zeit innerhalb einer Funktion verwenden wir eine statische Variable, so dass der Wert während der gesamten Anrufe beibehalten wird.Ada-Äquivalent der lokalen statischen Variable von C/C++
In Ada scheint dies nur mit dem Äquivalent von statischen Variablen auf Dateiebene zu geschehen. Gibt es ein Ada-Äquivalent?
C++:
function Get_HW_Counter() {
static int count = 0;
return ++count;
}
Ada: ??
würden Sie ein Paket lokal zu einem Unterprogramm erstellen können, aber es wird auf jeden Eintrag erarbeitet bekommen (so werden alle Variablen neu initialisiert werden). –
Eigentlich, wenn ich die Frage erneut lese, denke ich, dass dies genau das Äquivalent zu statischen Variablen auf Dateiebene ist. Also nein, ich glaube nicht, dass es ein Ada-Äquivalent des C gibt. Aber es ist nicht schwer, den gleichen Effekt zu erzielen, wenn auch ein bisschen lästiger. –
In Ada 2012 brauchen Sie nicht einmal einen package-body, Sie könnten eine expression-Funktion im privaten Bereich verwenden, um den Accessor zu implementieren. – Shark8