a1152024140的专栏

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

* 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".

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

即使爬到最高的山上,一次也只能脚踏实地地迈一步。

a1152024140的专栏

相关文章:

你感兴趣的文章:

标签云: