Я прочитал предыдущие темы о закрытии стека и других источниках, и одна вещь по-прежнему меня путает. Из того, что мне удалось собрать вместе, технически закрытие - это просто набор данных, содержащих код функции и значение связанных переменных в этой функции.
Другими словами, технически следующая C-функция должна быть закрытием из моего понимания:
int count()
{
static int x = 0;
return x++;
}
Но все, что я читаю, похоже, подразумевает, что закрытие должно каким-то образом включать функции передачи в качестве объектов первого класса. Кроме того, обычно подразумевается, что закрытие не является частью процедурного программирования. Является ли это случаем решения, слишком связанного с проблемой, которую он решает, или я не понимаю точное определение?