编程论坛's Archiver

newyj 发表于 2008-5-6 21:52

成员函数声明为inline的问题?

成员函数声明为inline和不声明有什么区别?

sunkaidong 发表于 2008-5-6 21:57

编译的时候直接把出现函数的地方用代码替换..减少压栈得时间..

zjl138 发表于 2008-5-6 22:00

在类内部定义的成员函数,将自动作为inline处理.
类成员函数声明成inline可以提高运行时效率
也可以在类定义体外部的函数定义上指定inline。在声明和定义处指定inline都是合法的。在类的外部定义inline的一个好处就可以使得类比较容易阅读。

newyj 发表于 2008-5-6 22:20

先谢谢 楼上的两位
那是不是说 声明为inline就都是好的
能不能说一下 声明为inline时不好的情况

zjl138 发表于 2008-5-6 22:31

那是不是说 声明为inline就都是好的?
当然不是。
当函数体比较大时,最好就不是内联.
这里有关于inline的讨论,可以看一下。
http://topic.csdn.net/u/20070117/16/9e4fc2d1-eaaf-4600-bf02-a88d80b05484.html?2002325625

newyj 发表于 2008-5-6 22:35

谢谢啊

sunkaidong 发表于 2008-5-6 23:06

体积大的时候内联增加内存负担

aipb2007 发表于 2008-5-7 00:01

inline几乎可以看做是编译器行为,短小的函数,你即使不声明,编译器也会为你优化,太大的函数,即使你声明了,编译器也不做任何改变。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.