首页 > 代码库 > 谈谈 OC 中的内联函数
谈谈 OC 中的内联函数
内联函数
即在编译的时候将函数体替换函数调用。从而不须要将parameter,returnaddress进行push/pop stack的操作,
从而加速app的执行。然而,会添加二进制文件的大小。
疑问:内联函数和非内联函数有非常大不同吗?
解答:对硬件硬性不大,但在性能上有影响。
内联函数不能保证编译时候一定是内联的,内联不过告诉编译器请求内联。但编译器不一定内联。
内联函数的使用场景: OC--->结构体CGRectMake--->在高速赋值的时候就是调用了其内联函数
CG_INLINE CGRect CGRectMake(CGFloat x, CGFloaty, CGFloat width, CGFloatheight) { CGRect rect; rect.origin.x = x;rect.origin.y= y; rect.size.width =width; rect.size.height= height; return rect; }
//这会导致编译器为内联函数创建代码。而不是在堆栈上创建一个函数调用 CG_INLINE is a #define for static inline. This causes the compiler to create the code for thefunction inline, rather that creating a function call on the stack.
谈谈 OC 中的内联函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。