iOS 内联函数 inline

OC中使用inline,主要是为了提高函数调用的效率

使用例子:

static inline NSString * imageURLKeyForState(UIControlState state) {
    return [NSString stringWithFormat:@"image_%lu", (unsigned long)state];
}

我们通常会发现,inline 会有 static来修饰,表示在当前文件中应用,如 static b, 在其它文件中也可以出现static b.不会导致重名的错误.

inline和函数

1.inline函数避免了普通函数的,在汇编时必须调用call的缺点:取消了函数的参数压栈,减少了调用的开销,提高效率.所以执行速度确比一般函数的执行速度要快.
2.集成了宏的优点,使用时直接用代码替换(像宏一样)

inline和宏
1.避免了宏的缺点:需要预编译.因为inline内联函数也是函数,不需要预编译.
2.编译器在调用一个内联函数时,会首先检查它的参数的类型,保证调用正确。然后进行一系列的相关检查,就像对待任何一个真正的函数一样。这样就消除了它的隐患和局限性。
3.可以使用所在类的保护成员及私有成员。

inline 说明
1.内联函数只是我们向编译器提供的申请,编译器不一定采取inline形式调用函数.
2.内联函数不能承载大量的代码.如果内联函数的函数体过大,编译器会自动放弃内联.
3.内联函数内不允许使用循环语句或开关语句
4.内联函数的定义须在调用之前。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引入内联函数的目的是为了解决程序中函数调用的效率问题。 函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能...
    平谦阅读 2,231评论 0 1
  • inline 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,...
    cyh老崔阅读 24,282评论 18 106
  • 在iOS中的一些框架中,static inline是经常出现的关键字组合. static自不用多说,表示在当前文件...
    张霸天阅读 756评论 0 0
  • 代码(OC): -(NSUInteger)retainCount{ returnNSExtraRefCount(s...
    nalis风阅读 1,279评论 0 1
  • 任务一 关于“这些道理没人告诉过你”读书笔记 什么样的求职信最能打动HR 一、 写求职信的五个金科玉律:1. ...
    财四谭攀阅读 170评论 0 0