QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2319|回复: 15

inline 是啥?

[复制链接]
发表于 2003-5-1 11:19:12 | 显示全部楼层 |阅读模式
static inline void list_add(struct list_head *new, struct list_head *head)
这个inline是干嘛用的?
发表于 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.
回复

使用道具 举报

 楼主| 发表于 2003-5-1 11:38:20 | 显示全部楼层
没明白
回复

使用道具 举报

发表于 2003-5-1 11:41:58 | 显示全部楼层
so do u know how macro works?
回复

使用道具 举报

发表于 2003-5-1 11:43:25 | 显示全部楼层
a more detail description about inline

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

使用道具 举报

 楼主| 发表于 2003-5-1 12:45:54 | 显示全部楼层
明白了  谢谢cheungming
回复

使用道具 举报

 楼主| 发表于 2003-5-1 12:48:23 | 显示全部楼层
不过有时举个例子会更好  其实我没听懂你说了啥  在看过那个链接里的例子才明白
回复

使用道具 举报

发表于 2003-5-1 22:31:04 | 显示全部楼层
hehe, i lazy to input too much.
回复

使用道具 举报

发表于 2003-6-26 23:20:31 | 显示全部楼层
是C++中用来定义的内联函数的关键字,跟宏差不多吧!!!
回复

使用道具 举报

发表于 2003-6-26 23:54:40 | 显示全部楼层
c has it as well.
回复

使用道具 举报

发表于 2003-6-28 20:06:53 | 显示全部楼层

121

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

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

[quote:9b6e187a6f="XKK"]是C++中用来定义的内联函数的关键字,跟宏差不多吧!!!
[/quote]
回复

使用道具 举报

发表于 2003-6-28 21:14:15 | 显示全部楼层
yes, i only say "like a macro". it is not a macro.
回复

使用道具 举报

发表于 2003-6-28 22:54:32 | 显示全部楼层
根宏的区别就是inline可以做真正的检查,而宏不行,根据我自己的经验有两种编译错非常烦,一种是宏一种是模板(实际上是从宏进化过来的),而inline有什么错调起来很容易,好像这也是介绍inline进来的原因吧。
回复

使用道具 举报

发表于 2003-6-29 20:34:34 | 显示全部楼层
从外观上看,速度我想是最明显的差别吧?
回复

使用道具 举报

发表于 2003-6-29 21:24:06 | 显示全部楼层
不会吧,因为使用inline都是些很小且会被反复使用的函数,也就是说,算法优化不会在inline里进行(作为编程原则),如果有速度的明显差异,那介绍inline进来就没意义了。据我所知,经典教材里都说的是帮助编译器进行检查排错的,当然,我从来没有编过那么苛刻的时间要求的程序。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 11:50 , Processed in 0.059796 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表