iOS中内联函数的使用

西门桃桃 2021-11-23 PM 1624℃ 0条

内联函数(inline function)

inline

  • 使用 inline 修饰函数的声明或者实现,可以使其变为联函数

    • 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用

特点

优点

  • 编译器会将函数调用直接展开为函数体代码
  • 可以减少函数调用的开销
  • 对于存取函数以及其它函数体比较短, 性能关键的函数, 建议使用内联.
  • 所以可以认为是 空间换时间思想的体现

缺点

  • 会增加代码体积

注意

  • 尽量不要内联超过 10 行代码的函数
  • 有些函数即使声明为 inline. 也不一定会被编译器内联,比如递归函数

内联函数与宏定义

  • 内敛函数,都可以减少函数调用的开销
  • 对比内敛函数多了语法检测和函数的特性

iOS中 inline 函数的使用

CG_INLINE

CG_INLINE CGRect
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
{
  CGRect rect;
  rect.origin.x = x; rect.origin.y = y;
  rect.size.width = width; rect.size.height = height;
  return rect;
}

// 这会使编译器为内联函数创建代码。而不是在堆栈上创建一个函数调用

标签: 内联函数

非特殊说明,本博所有文章均为博主原创。

评论啦~