applepie 发表于 2003-5-1 11:19:12

inline 是啥?

static inline void list_add(struct list_head *new, struct list_head *head)
这个inline是干嘛用的?

Dragonfly 发表于 2003-5-1 11:31:25

inline is an optimize option. it will be expanded by compiler like a macro does. so save some call time and stack operation costs. but the inline should be correctly used.

applepie 发表于 2003-5-1 11:38:20

没明白

Dragonfly 发表于 2003-5-1 11:41:58

so do u know how macro works?

Dragonfly 发表于 2003-5-1 11:43:25

a more detail description about inline

http://new-brunswick.net/workshop/c++/faq/inline-functions.html

applepie 发表于 2003-5-1 12:45:54

明白了谢谢cheungming

applepie 发表于 2003-5-1 12:48:23

不过有时举个例子会更好其实我没听懂你说了啥在看过那个链接里的例子才明白

Dragonfly 发表于 2003-5-1 22:31:04

hehe, i lazy to input too much.
:wink:

XKK 发表于 2003-6-26 23:20:31

是C++中用来定义的内联函数的关键字,跟宏差不多吧!!!
:roll:

Dragonfly 发表于 2003-6-26 23:54:40

c has it as well.

超级用户 发表于 2003-6-28 20:06:53

121

GNU C 扩展了,所以GNC C 里也有inline指令。

但是inline和宏是不一样的,虽然我没有实验过,但是如果您能看汇编像看小说那样,反编译一下就知道了。

是C++中用来定义的内联函数的关键字,跟宏差不多吧!!!
:roll:

Dragonfly 发表于 2003-6-28 21:14:15

yes, i only say "like a macro". it is not a macro.

kakuyou 发表于 2003-6-28 22:54:32

根宏的区别就是inline可以做真正的检查,而宏不行,根据我自己的经验有两种编译错非常烦,一种是宏一种是模板(实际上是从宏进化过来的),而inline有什么错调起来很容易,好像这也是介绍inline进来的原因吧。

超级用户 发表于 2003-6-29 20:34:34

从外观上看,速度我想是最明显的差别吧?

kakuyou 发表于 2003-6-29 21:24:06

不会吧,因为使用inline都是些很小且会被反复使用的函数,也就是说,算法优化不会在inline里进行(作为编程原则),如果有速度的明显差异,那介绍inline进来就没意义了。据我所知,经典教材里都说的是帮助编译器进行检查排错的,当然,我从来没有编过那么苛刻的时间要求的程序。
页: [1] 2
查看完整版本: inline 是啥?