Block和函数指针的区别

1. 函数指针仅仅是一个地址,不具备函数原型信息,没有类型限制,比如一个指向变量的指针同样可以指向一个函数,但是block作为函数对象,是有部分函数信息的,类型限制更明确。
2. block方式便于实现真正的“函数式”编程,让函数成为基本的运算元,往更远的方向说,真正的函数式语言可以去掉寄存器(请参考冯诺依曼机器基本架构),提高程序的执行效率,近段时间的语言都支持lambda语法,包括JS、C++、Python、Ruby等,可见各个编程语言为改进冯诺依曼架构做出的努力和准备

3. 提高程序的健壮性, 定义函数的代码会位于程序的代码段,如果函数内部出现内存溢出,就会直接导致crash,因为代码段是不可写的;block作为函数对象在运行时生成,位于栈内,即使出现内存溢出,一般也不会直接导致crash.



参考:http://blog.csdn.net/totogo2010 微博的评论.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值