Pochodzę z C/C++ na systemach wbudowanych i przez cały czas w funkcji używamy zmiennej statycznej, dzięki czemu wartość jest zachowywana przez cały czas trwania połączeń.Ada, odpowiednik lokalnej zmiennej statycznej z C/C++
W Ada wygląda na to, że robi się to tylko z odpowiednikami statycznych zmiennych na poziomie pliku. Czy istnieje odpowiednik Ada?
C++:
function Get_HW_Counter() {
static int count = 0;
return ++count;
}
Ada: ??
Można utworzyć pakiet lokalny do podprogramu, ale to się opracowane na każdym wejściu (więc wszelkie zmienne będą ponownie zainicjowane). –
Właściwie, po ponownym przeczytaniu pytania, uważam, że są one dokładnie równoważne zmiennym statycznym na poziomie pliku. Więc nie, nie wierzę, że istnieje odpowiednik C. To nie jest takie trudne, jeśli trochę bardziej męczące. –
W Ada 2012 nie potrzebujesz nawet korpusu pakietu, w którym możesz użyć funkcji-wyrażenia w sekcji prywatnej w celu implementacji akcesora. – Shark8