IOS知识积累内功修炼iOS干货

iOS OC内联函数 inline

2016-02-17  本文已影响8040人  cyh老崔

inline

在iOS中的一些框架中,static inline是经常出现的关键字组合.

(如果你在看框架时,看到inline不解,搜索到这篇文章,看到这里可以不用看下面的详述了)

static inline CGFloat CGFloatFromPixel(CGFloat value) {
    return value / YYScreenScale();
}

//YYScreenScale()方法说明:
CGFloat YYScreenScale() {
    static CGFloat scale;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        scale = [UIScreen mainScreen].scale;
    });
    return scale;
}

虽然static inline修饰的是函数(或者方法,swift出来后,我觉着方法==函数,朋友们不用咬文嚼字,鄙视我辈了).但它在这里就是宏的作用,即你可以将CGFloatFromPixel当作一个宏.
当然inline函数与宏有区别,inline可以:

结论

为什么inline能取代宏?
inline内联函数的说明

参考资料:

http://stackoverflow.com/questions/11985307/static-extern-and-inline-in-objective-c

http://tigcc.ticalc.org/doc/gnuexts.html#SEC93

上一篇 下一篇

猜你喜欢

热点阅读