码迷,mamicode.com
首页 > 其他好文 > 详细

关于内联函数的解释

时间:2015-04-27 13:20:07      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

今天在函数里面看到一个代码块

static inline NSString * AFImageCacheKeyFromURLRequest(NSURLRequest *request) {

    return [[request URL] absoluteString];

}


这么写是一个C语言函数调用的时候直接用

函数名:(参数)

方式调用

关于inline的解释

1.内联函数可减少cpu的系统开销,并且程序的整体速度将加快,但当内联函数很大时,会有相反的作用,因此一般比较小的函数才使用内联函数.
2.有两种内联函数的声明方法,一种是在函数前使用inline关见字,另一种是在类的内部定义函数的代码,这样的函数将自动转换为内联函数,而且没必要将inline放在函数前面.
3.内联是一种对编译器的请求,下面这些情况会阻止编译器服从这项请求.
如果函数中包含有循环,switch或goto语句,递归函数,含有static的函数.


inux之父linus说过 "static inline" means "we have to have this function, if you use it, but don‘t inline it, then make a static version of it in this compilation unit". "extern inline" means "I actually _have_ an extern for this function, but if you want to inline it, here‘s the inline-version". 


当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。

关于内联函数的解释

标签:

原文地址:http://blog.csdn.net/a1152024140/article/details/45307913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!