标题:[讨论]FAQ新增条目建议 正确的书写规范
只看楼主
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
得分:0 
inline(内联)关键字
  内联函数除了保持结构化和函数式的定义方式外,还能使程序员写出高效率的代码.函数的每次调用与返回都会消耗相当大的系统资源,尤其是当函数调用发生在重复次数很多的循环语句中时.一般情况下,当发生一次函数调用时,变元需要进栈,各种寄存器内存需要保存.当函数返回时,寄存器的内容需要恢复。如果该函数在代码内进行联机扩展,当代码执行时,这些保存和恢复操作旅游活动会再发生,而且函数调用的执行速度也会大大加快。函数的联机扩展会产生较长的代码,所以只应该内联对应用程序性能有显著影响的函数以及长度较短的函数。
 
c++的也用上了?
你提供的是好东西呀

You have lots more to work on! Never give up!c language!
2007-09-21 19:10
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
C99已经支持inline关键字了。。

不过inline是只对编译器发出请求而已。编译器会不会根据程序员的指示做那就是另一码事儿了,,,所以真不知道inline到底有什么用???楼下的说说。。。

偶学编程,也许本身就是一个错。。。
2007-09-21 19:13
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
得分:0 
楼上的是怪我提供的有问题?
这篇文章我在个google上搜得,不排除有错误,C99英文我没看过,所以可能有错,不过我只是提供给大家参考讨论之用!

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-09-21 19:15
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
LS别误会,,,我对inline的了解仅局限在c primer plus所介绍的那些知识。。。我提出的问题也是我在看书时的疑问,想请教下大家,没别的意思。。。

PS:LS是不是平常就爱想太多

偶学编程,也许本身就是一个错。。。
2007-09-21 19:19
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
得分:0 
inline强烈建议编在头文件
而且长度小,经常用
是吧
c中没用过

You have lots more to work on! Never give up!c language!
2007-09-21 19:21
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
以下是引用栖柏在2007-9-21 19:21:19的发言:
inline强烈建议编在头文件
而且长度小,经常用
是吧
c中没用过

inline编在头文件:
为什么?编在头文件,用include时不也是无条件复制地进行代码复制,这和编在哪里有什么关系??
而且长度小,经常用:
当调用时间大于函数执行时间才用吧!!!当函数时间很长时,用内联还有意思吗???

[此贴子已经被作者于2007-9-21 19:26:02编辑过]


偶学编程,也许本身就是一个错。。。
2007-09-21 19:25
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
得分:0 
我刚才说的的是41楼的,一般我也不用内联,只是从c++上得到内联的知识,好像就是提高执行效率,我用C从来没用过,估计这条也是为C与C++更好结合。
ps:这个社会想的不多不行啊!特别说话要小心,给新手和高手说话更要小心啊!

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-09-21 19:25
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
得分:0 
以下是引用coachard在2007-9-21 19:25:04的发言:

inline编在头文件:
为什么?编在头文件,用include时不也是无条件复制地进行代码复制,这和编在哪里有什么关系??
而且长度小,经常用:
当调用时间大于函数执行时间才用吧!!!当函数时间很长时,用内联还有意思吗???


谢谢你的回复,我还想看看别人的回答,呵呵,刚才是我猜的,不好意思
顺便说一下,看书就知道了

[此贴子已经被作者于2007-9-22 10:53:24编辑过]


You have lots more to work on! Never give up!c language!
2007-09-21 19:30
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
得分:0 
以前一些简单的函数,为了降低调用函数时寄存器入栈保护现场,参数入栈传递等造成的开销,很多程序员使用宏函数。

因为宏函数出错不好检查,也不好用,所以C++引入了内联函数的概念,用以替代宏函数,在调用的位置插入代码展开,省去调用函数的开销。C99引入了内联函数。

===========================================================================================================
inline和register关键字一样,都是向编译器申请,编译器决定是否采纳程序员的建议。
2007-09-21 20:19
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
得分:0 
也就是说,你想用内联,还得问你的工具同不同意支不支持,是吗?

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2007-09-21 20:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-171171-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.580498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved