如何从C中的函数中返回python风格的函数?

如何从C中的函数中返回python风格的函数?,python,c,function,gcc,Python,C,Function,Gcc,考虑以下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中有没有类似的方法? 我希望函

考虑以下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中有没有类似的方法? 我希望函数返回另一个用户可以调用的函数(本地/嵌套或其他)

说清楚点,我不想:

  • 调用函数中的另一个函数并返回该计算的值
  • 从函数中返回指向另一个函数的指针
请注意:
我已调查过“”。但它没有回答这个问题,因为所有给出的答案都是一种很大程度上依赖于指针、外部库等的变通方法。而且这个问题很老(9年)我希望从那时起,一些编译器可能已经为这样做添加了支持/扩展。

你的意思是在Python C API中从C函数返回一个可调用的Python,还是在不使用Python的常规C程序中返回一个C函数?如果“给出的所有答案都是一种变通方法”,C没有闭包。是的,您正在寻找解决方法。
返回一个可调用的函数(不是函数指针)。
这没有意义。如何返回函数?如何返回不是函数指针的可调用函数?如果您返回某个内容,然后将其作为函数调用,该函数正好是函数指针。Re“可调用函数(不是函数指针)”,则函数与Python示例中的
add1
所包含的内容没有区别。它们都是指向一个函数的指针。不,您可以在这两个函数中执行
add1(3)
。甚至在句法上都没有区别。