История изменений
Исправление alysnix, (текущая версия) :
Когда ты присваиваешь переменной значение «функция», на самом деле в переменной хранится два значения: адрес кода, который надо выполнять, когда будет вызван оператор функции и адрес таблицы с указателями на внешние переменные, которые используются в коде этой функции.
в компилируемом языке никакой «таблицы» нет. если только в интерпретируемом.
в компилируемом языке только адрес. как для обычной функции. потому что это и есть - обычная функция с сладкими синтаксическими прибабахами. нет таблицы в рилтайме потому, что компилятор при компляции видит, что надо пропихнуть в такое замыкание, и делает это.
Исходная версия alysnix, :
Когда ты присваиваешь переменной значение «функция», на самом деле в переменной хранится два значения: адрес кода, который надо выполнять, когда будет вызван оператор функции и адрес таблицы с указателями на внешние переменные, которые используются в коде этой функции.
в компилируемом языке никакой «таблицы» нет. если только в интерпретируемом.
в компилируемом языке только адрес. как для обычной функции. потому что это и есть - обычная функция с сладкими синтаксическими прибабахами. нет таблицы в рилтайме потому, что компилятор при компляции видит, что надо попихнуть в такое замыкание, и делает это.