Как вернуть функцию стиля python из функции в C? - PullRequest
0 голосов
/ 05 февраля 2020

Рассмотрим приведенный ниже python код:

# Return a function that returns its argument incremented by 'n'
def make_incrementer(n):
    def increment(x, n=n):
        return x+n
    return increment

add1 = make_incrementer(1)
print add1(3)  # This prints '4'

Есть ли способ сделать что-то подобное в C? Я хочу, чтобы функция возвращала другую функцию (локальную / вложенную или иную), которая может быть вызвана пользователем.

Просто для ясности, я делаю не хочу:

  • вызов другой функции внутри функции и возвращаемое значение этого вычисления
  • возвращает указатель на другую функцию из функции

Обратите внимание: я изучил ' Есть ли способ достичь замыканий в C '. Но он не отвечает на вопрос, поскольку все приведенные ответы являются своего рода обходными путями, которые в значительной степени зависят от указателей, внешних библиотек и т. Д. c. Также вопрос довольно старый (9 лет), и я надеюсь, что какой-то компилятор, возможно, добавил поддержку / расширение для того, чтобы сделать что-то подобное с тех пор.

...