社区
C语言
帖子详情
关于内联函数
flycat1
2002-07-17 03:06:44
小弟对内联函数的作用不是很明白,为什么要使用内联函数以及在什么情况下需要使用它呢,希望各位大侠能帮帮我。
...全文
92
22
打赏
收藏
关于内联函数
小弟对内联函数的作用不是很明白,为什么要使用内联函数以及在什么情况下需要使用它呢,希望各位大侠能帮帮我。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangcanhui
2002-07-18
打赏
举报
回复
内联函数主要是在编译时将函数调用指针与函数体相连接,提高运行的效率,但以
占用内存为代价
born_in70s
2002-07-18
打赏
举报
回复
>> you can get address of an inline function.
的确, 因为被inline 的函数体仍作为一个编译单位存在. 编译器视
情况决定是否在函数调用处将其inline 进来. 如果我们通过函数指针
来调用这个函数, 那这个调用肯定不会被inline 了.
elvahuang
2002-07-18
打赏
举报
回复
gz
ajoo
2002-07-18
打赏
举报
回复
No, you can get address of an inline function.
It is only a suggestion to the compiler, not a command.
hellwolf
2002-07-18
打赏
举报
回复
编译器看情况
如果出现递归的话,编译器可不会知道函数何时结束,所以就避开内联即使用inline关键字
bestone
2002-07-18
打赏
举报
回复
需要取函数的地址时也不可以用内联函数。
inevity
2002-07-18
打赏
举报
回复
inline函数确实比c中的宏好。他既有类型检查,有没有函数调用的堆栈的建立与返回的开销。编译器不过是copy了一份inline代码。当然若这个line函数过大,会占据很大的内存,得不偿失。在类中的成员函数,编译器已默认为inline的了。
maoxianwang
2002-07-18
打赏
举报
回复
有收获
ajoo
2002-07-18
打赏
举报
回复
don't have to use inline. Compiler can do inlining better than you can.
So why bother?
glassshark
2002-07-17
打赏
举报
回复
1。在速度要求比较快的场合使用,但要求函数规模比较小,使用比较频繁。
2。编译器将去掉出入栈的调用及清理代码,加快函数调用。
3。在利用合理时将减少代码规模,如代码量小于出入栈及清理代码时。
4。在循环及递归中最好不要使用,而且递归中不可能是内联的,因为递归的规模(即函数调用次数)在编译时是无法确定的,所以不可能将其替换成确定次数的函数体代码。
5。是否实现内联全由编译器最终决定,你的说明只是一个“建议”,编译器将根据其内在规则(取决于具体编译器的具体实现)来确定是否实现内联。
6。比宏定义好,可以真正实现类型检查,而且不会有宏调用参数的副作用。
7。在类中使用比较多,如果在类说明中直接定义函数体,编译器即视你说明了一个内联函数,但有关规则同上。
8。其它,记不起了。
born_in70s
2002-07-17
打赏
举报
回复
inline 尤其对 C++ 代码的优化有好处.
fanqing
2002-07-17
打赏
举报
回复
内联函数就是使每个对象都有内联函数的一个副本,非内联就是当对象用这个函数通过连接连接此函数.
rediori
2002-07-17
打赏
举报
回复
不过inline大部分是由编译器决定的
编译器一般不会允许一个很大的函数内联,即使你声明了是inline
但一些没有声明的函数, 但是调用了次数很多的情况下编译器会设置为内联
司马青衫依旧
2002-07-17
打赏
举报
回复
前面两位virginsoldier(北欧野马——哈根) 和 fangrk(加把油,伙计!)老兄说得很对!
内联函数,常常用于该函数代码短小,而经常被调用;这样每次调用的花销很大(虽然函数很小,但是调用时要保存此时的环境如堆栈等,而函数返回又要恢复)。为了避免这种不协调,才有了内联函数。
我觉得他似乎就像“宏”,只是把函数的代码插入的调用的地方,并不是真正的函数调用。(这种比喻不知道妥当否)
Faccey
2002-07-17
打赏
举报
回复
内联函数确实可以提高效率,因为和一般的函数调用相比,省去了调用和返回的时间,但是它不能在需要被频繁调用的场合下使用,那会使程序大小急速膨胀,比如在递归调用中
司马青衫依旧
2002-07-17
打赏
举报
回复
前面两位virginsoldier(北欧野马——哈根) 和 fangrk(加把油,伙计!)老兄说得很对!
内联函数,常常用于该函数代码短小,而经常被调用;这样每次调用的花销很大(虽然函数很小,但是调用时要保存此时的环境如堆栈等,而函数返回又要恢复)。为了避免这种不协调,才有了内联函数。
我觉得他似乎就像“宏”,只是把函数的代码插入的调用的地方,并不是真正的函数调用。(这种比喻不知道妥当否)
Faccey
2002-07-17
打赏
举报
回复
内联函数确实可以提高效率,因为和一般的函数调用相比,省去了调用和返回的时间,但是它不能在需要被频繁调用的场合下使用,那会使程序大小急速膨胀,比如在递归调用中
Hmilu
2002-07-17
打赏
举报
回复
我也来学学!
bluedodo
2002-07-17
打赏
举报
回复
到底是用"宏"还是用"INLINE",其实我认为都有它的好处,但我还是认为少用为好,除非它给你带来的益处能抵消因内联函数所带来体积增大的开销.
earthharp
2002-07-17
打赏
举报
回复
inline 函数有一套复杂的运作,我正有意思看看。
加载更多回复(2)
内联函数
内联函数
关键字: inline 也叫镶嵌函数 函数调用需要建立栈内存环境, 进行参数传递, 并产生程序执行转移, 这些工作都需要一些时间开销, 有些函数使用频率高, 但是代码很短 c++提供inline函数, 减少函数调用成本. 编译器看到inline后, (一般)为该函数创建一段代码, 以便在后面每次调用都用一段代码来替换,
内联函数
的初衷是为了空间换取时间的更快, 所以不能在
内联函数
内加上...
【C++】
内联函数
⑤ (
内联函数
总结 |
内联函数
代码示例 )
一、
内联函数
总结 二、
内联函数
代码示例 1、代码示例 - 普通函数执行分析 2、代码示例 -
内联函数
执行分析 3、代码示例 - 宏代码片段执行分析
C++
内联函数
C++
内联函数
——如何正确地使用
内联函数
,使得为我们的代码增彩
内联函数
inline
前言:
内联函数
是C++为提高程序运行速度所做的一项改进。常规函数和
内联函数
的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中。
内联函数
的定义 定义
内联函数
,需使用C++的关键字 inline 且必须采取下俗措施之一 在函数声明前加上关键字inline; 在函数定义前加上关键字inline。 通常的做法是是省略原型,直接定义(即函数头和所有函数代码)放在本应提供原型的的地方。 //
内联函数
的定义,关键字在返回类型之前 inline int Add(int x,int y) .
[C++]
内联函数
成员函数是在类体中定义的。也可以在类体中只写成员函数的声明,而在类的外面进行函数定义public ://公用成员函数原型声明private :int num;char sex;//以上3行是私有数据成员void Student::display( )//在类外定义display类函数//定义两个类对象注意:在类体中直接定义函数时,不需要在函数名前面加上类名,因为函数属于哪一个类是不言而喻的。
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章