Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
传递GCC嵌套函数是否有效?如果不是的话,有什么其他选择可以和国家一起蹦床?_C_Gcc_Promise_Nested Function - Fatal编程技术网

传递GCC嵌套函数是否有效?如果不是的话,有什么其他选择可以和国家一起蹦床?

传递GCC嵌套函数是否有效?如果不是的话,有什么其他选择可以和国家一起蹦床?,c,gcc,promise,nested-function,C,Gcc,Promise,Nested Function,对于我正在进行的项目,我希望使用GCC嵌套函数,因为我希望有一种lambda: 我对支持其他编译器不感兴趣 我不想从本地上下文访问变量,因为我不想使用蹦床 到目前为止,我的平台由一组库和组件组成,我希望使用嵌套函数和承诺的组合在其上组织所有业务逻辑 我的问题是,据我所知,嵌套函数在函数上下文中死亡,因此如果我在创建函数的函数返回后访问函数指针,我可能最终访问损坏的内存 对吗?如果是,是否有其他选择?(除了使用C++:))< /P> 从一个非常初始的测试来看,当嵌套函数被传递时,它看起来是工作

对于我正在进行的项目,我希望使用GCC嵌套函数,因为我希望有一种lambda:

  • 我对支持其他编译器不感兴趣
  • 我不想从本地上下文访问变量,因为我不想使用蹦床
到目前为止,我的平台由一组库和组件组成,我希望使用嵌套函数和承诺的组合在其上组织所有业务逻辑

我的问题是,据我所知,嵌套函数在函数上下文中死亡,因此如果我在创建函数的函数返回后访问函数指针,我可能最终访问损坏的内存

对吗?如果是,是否有其他选择?(除了使用C++:))< /P> 从一个非常初始的测试来看,当嵌套函数被传递时,它看起来是工作的,但不确定这是否只是因为内存没有被覆盖

此外,当GCC对嵌套函数使用蹦床时,是否有任何GCC标志可用于触发错误


谢谢

:“如果您试图在包含函数退出后通过其地址调用嵌套函数,那么一切都会变得一团糟。”@pmg gotti love open source documentation:)要回答这个问题,您可能应该开始对程序设计进行几次迭代,看看它是否有意义。对奇怪的函数指针和宏API的复杂需求通常源于混乱的设计。在任何形式的C程序中,我都无法为嵌套函数提供任何用例。也就是说,你可以返回一个指向
静态
文件作用域函数的指针…@rustyx我真的不认为解释原因是有用的:)显然你对它们不感兴趣:)我很想拥有lambdas,这将很容易引入map/reduce模式,并使应用函数式编程中常用的一些好原则变得更容易,这些原则有助于以合理的方式构造业务逻辑:“如果在包含函数退出后试图通过其地址调用嵌套函数,所有的麻烦都会迎刃而解。”@pmg必须热爱开源文档:)为了回答这个问题,您应该开始对程序设计进行几次迭代,看看它是否有意义。对奇怪的函数指针和宏API的复杂需求通常源于混乱的设计。在任何形式的C程序中,我都无法为嵌套函数提供任何用例。也就是说,你可以返回一个指向
静态
文件作用域函数的指针…@rustyx我真的不认为解释原因是有用的:)显然你对它们不感兴趣:)我很想拥有lambdas,这将很容易地引入map/reduce模式,并使应用函数式编程中常用的一些好的原则变得更容易,这些原则有助于以合理的方式构建业务逻辑。