LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

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

в компилируемом языке никакой «таблицы» нет. если только в интерпретируемом.

в компилируемом языке только адрес. как для обычной функции. потому что это и есть - обычная функция с сладкими синтаксическими прибабахами. нет таблицы в рилтайме потому, что компилятор при компляции видит, что надо пропихнуть в такое замыкание, и делает это.

Исходная версия alysnix, :

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

в компилируемом языке никакой «таблицы» нет. если только в интерпретируемом.

в компилируемом языке только адрес. как для обычной функции. потому что это и есть - обычная функция с сладкими синтаксическими прибабахами. нет таблицы в рилтайме потому, что компилятор при компляции видит, что надо попихнуть в такое замыкание, и делает это.