zoukankan      html  css  js  c++  java
  • 谈谈 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.







  • 相关阅读:
    第二阶段团队绩效评分
    团队冲刺2.9
    团队冲刺2.8
    团队冲刺2.7
    团队冲刺2.6
    团队冲刺2.5
    项目总结以及事后诸葛亮会议
    做什么都队第二阶段绩效评估
    第二阶段冲刺第十天
    第二阶段冲刺第九天
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7269915.html
Copyright © 2011-2022 走看看