Was ist die genaue Definition eines Abschlusses?

Ich habe vorhergehende Themen zu Schließungen von Stackflow und anderen Quellen durchgelesen und eine Sache verwirrt mich immer noch. Nach dem, was ich technisch zusammensetzen konnte, ist ein Abschluss einfach der Datensatz, der den Code einer Funktion und den Wert von enthältgebundene Variablen in dieser Funktion.

Mit anderen Worten, technisch gesehen sollte die folgende C-Funktion meines Erachtens ein Abschluss sein:

int count()
{
    static int x = 0;

    return x++;
}

Doch alles, was ich lese, scheint zu implizieren, dass Abschlüsse die Übergabe von Funktionen als erstklassige Objekte beinhalten müssen. Darüber hinaus scheint es normalerweise impliziert zu sein, dass Abschlüsse nicht Teil der prozeduralen Programmierung sind. Ist dies der Fall, dass eine Lösung zu sehr mit dem Problem zusammenhängt, das sie löst, oder verstehe ich die genaue Definition falsch?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage