Где первоклассные функции размещены в памяти? Они отличаются от функций в C? - PullRequest
0 голосов
/ 16 апреля 2019

Я изучаю языки программирования и сейчас пытаюсь понять разницу между функциями первого порядка и функциями первого класса.

Я просмотрел некоторые сообщения об этом и понял, что все функции в Python или Java обрабатываются как объекты первого класса, как концепция лямбда.

Затем я увидел статью, в которой говорится, что в Си все по-другому. Подобно первоклассной функции в Си, это указатели на функции, но они не могут быть назначаемыми, не копируемыми, а не отдельными экземплярами со своими собственными переменными экземпляра. Они не существуют в куче, но в стеке и не являются изменяемыми (только для чтения).

И указатели функций указывают на память секции кода. Но я не мог выяснить, как по-разному обрабатываются выделения памяти в функциях Python или Java для функциональных объектов. Они как-то выделяются в кучу? или мутациям с функциональными объектами просто выделяется новая память в разделах кода?

...