A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiniuniu 中级黑马   /  2014-8-25 16:23  /  1118 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiniuniu 于 2015-4-18 09:33 编辑




函数调用时,会分配一定的栈空间来存储参数或函数内局部变量。并跳转到函数代码处执行指令,执行完成后再跳回到原来调用函数指令的下一行继续执行。

而block代码则是在调用处直接生成相关代码,不用开辟栈空间和跳转,所以相比函数调用来说要效率一些。但同样,调用block越多,则占用的内存空间越多,所以一些短小的程序多可写成block代码。C++中内联函数也是这样分配的,OC中block的概念和C++中的内联函数是一样的!
又重新分析了下,block, 看来以前对block的理解是不太正确的, 新的理解见 __block int i 和 int i 的区别



2 个回复

倒序浏览
block编译时,类似宏替换,使用函数体替换调用处的函数名。
回复 使用道具 举报
学习了 谢谢楼主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马