鱼C论坛

 找回密码
 立即注册
查看: 1918|回复: 8

[已解决]为什么内联函数不能递归?

[复制链接]
发表于 2020-5-25 08:10:57 | 显示全部楼层 |阅读模式
10鱼币
看了一些网上的资料,也学了一点简单的汇编指令,还是不能理解内联函数为什么不能递归,求大神指点。
最佳答案
2020-5-25 08:10:58
调用内联函数,编译器会将内联函数,**拷贝** 到主调函数中。
请问,如何是你,会如何拷贝,递归函数?

参考资料: https://www.tutorialspoint.com/cplusplus/cpp_inline_functions.htm

最佳答案

查看完整内容

调用内联函数,编译器会将内联函数,**拷贝** 到主调函数中。 请问,如何是你,会如何拷贝,递归函数? 参考资料: https://www.tutorialspoint.com/cplusplus/cpp_inline_functions.htm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 08:10:58 | 显示全部楼层    本楼为最佳答案   
调用内联函数,编译器会将内联函数,**拷贝** 到主调函数中。
请问,如何是你,会如何拷贝,递归函数?

参考资料: https://www.tutorialspoint.com/cplusplus/cpp_inline_functions.htm
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 08:25:32 | 显示全部楼层
内联函数不能调用本身
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 08:43:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-25 09:56:06 | 显示全部楼层
qiuyouzhi 发表于 2020-5-25 08:43
https://blog.csdn.net/zuoside__lord/article/details/80354223

大神,是因为一些地址的特性,还是因为开销?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-25 09:57:24 | 显示全部楼层
青出于蓝 发表于 2020-5-25 08:25
内联函数不能调用本身

大神,为什么呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 10:01:03 | 显示全部楼层
〃忝書γě渎ぐ 发表于 2020-5-25 09:56
大神,是因为一些地址的特性,还是因为开销?

你没有看我发的链接吗?
如果函数的逻辑控制循环啥的太复杂了,编译器就不再认为
它是一个内联函数,递归也是一样,需要来来回回复制函数里面的代码好多遍
开销就会很大。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-25 13:16:27 | 显示全部楼层
qiuyouzhi 发表于 2020-5-25 10:01
你没有看我发的链接吗?
如果函数的逻辑控制循环啥的太复杂了,编译器就不再认为
它是一个内联函数,递 ...

这条看了,可编译器为什么要这样做呢,想知道原理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-25 13:19:06 | 显示全部楼层
赚小钱 发表于 2020-5-25 11:18
调用内联函数,编译器会将内联函数,**拷贝** 到主调函数中。
请问,如何是你,会如何拷贝,递归函数?

...

C++内联函数是与类一起使用的强大概念。如果函数是内联的,编译器在编译时调用函数的每个点放置该函数的代码的副本。

对内联函数的任何更改都可能需要重新编译函数的所有客户端,因为编译器需要再次替换所有代码,否则它将继续使用旧功能。

好像理解了,但不知为什么呢,如果是普通函数,编译器就不需要重新编译?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 02:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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