黑马程序员技术交流社区
标题:
block和函数的区别
[打印本页]
作者:
xiniuniu
时间:
2014-8-25 16:23
标题:
block和函数的区别
本帖最后由 xiniuniu 于 2015-4-18 09:33 编辑
block fun.png
(52.78 KB, 下载次数: 11)
下载附件
2014-8-25 15:51 上传
函数调用时,会分配一定的栈空间来存储参数或函数内局部变量。并跳转到函数代码处执行指令,执行完成后再跳回到原来调用函数指令的下一行继续执行。
而block代码则是在调用处直接生成相关代码,不用开辟栈空间和跳转,所以相比函数调用来说要效率一些。但同样,调用block越多,则占用的内存空间越多,所以一些短小的程序多可写成block代码。C++中内联函数也是这样分配的,OC中block的概念和C++中的内联函数是一样的!
又重新分析了下,block, 看来以前对block的理解是不太正确的, 新的理解见
__block int i 和 int i 的区别
作者:
泠风小和
时间:
2014-8-31 19:20
block编译时,类似宏替换,使用函数体替换调用处的函数名。
作者:
冯大卫
时间:
2014-8-31 23:34
学习了 谢谢楼主
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2