Redian新闻
>
What happens when recursion functions are declared inline?
avatar
What happens when recursion functions are declared inline?# Programming - 葵花宝典
b*a
1
inline函数不就是直接用code去代替函数的指针从而减少程序跳来跳去。如果是这样
的话,是不是就会无限的代替下去?
呵呵。我用Fibonacci function试了一下好像没有任何问题。 MSVS 6.0.
#include
using namespace std;
inline int fib(int num)
{ switch(num) {
case 0:
return(0);
break;
case 1:
return(1);
break;
default:
return(fib(num - 1) + fib(num - 2));
break;
}
}
main()
{
int sum=fib(9);
cout<return s
avatar
y*g
2
递归不inline
inline和海盗法典一样 只是指导

inline函数不就是直接用code去代替函数的指针从而减少程序跳来跳去。如果是这样
的话,是不是就会无限的代替下去?
呵呵。我用Fibonacci function试了一下好像没有任何问题。 MSVS 6.0.
#include
using namespace std;
inline int fib(int num)
{ switch(num) {
case 0:
return(0);
break;
case 1:
return(1);
break;
default:
return(fib(num - 1) + fib(num - 2));
break;
}
}
main()
{
int sum=fib(9);


【在 b******a 的大作中提到】
: inline函数不就是直接用code去代替函数的指针从而减少程序跳来跳去。如果是这样
: 的话,是不是就会无限的代替下去?
: 呵呵。我用Fibonacci function试了一下好像没有任何问题。 MSVS 6.0.
: #include
: using namespace std;
: inline int fib(int num)
: { switch(num) {
: case 0:
: return(0);
: break;

avatar
b*a
3
什么意思?
compiler发现是递归函数,即使声明为inline的话,也装作没看见?

【在 y*******g 的大作中提到】
: 递归不inline
: inline和海盗法典一样 只是指导
:
: inline函数不就是直接用code去代替函数的指针从而减少程序跳来跳去。如果是这样
: 的话,是不是就会无限的代替下去?
: 呵呵。我用Fibonacci function试了一下好像没有任何问题。 MSVS 6.0.
: #include
: using namespace std;
: inline int fib(int num)
: { switch(num) {

avatar
y*g
4


【在 b******a 的大作中提到】
: 什么意思?
: compiler发现是递归函数,即使声明为inline的话,也装作没看见?

avatar
b*a
5
喔。原来如此。
google了一把,没有发现这方面的东西。

【在 y*******g 的大作中提到】
: 嗯
avatar
h*o
6
看编译器的
有时候简单的recursion,编译器能直接算出个结果

【在 b******a 的大作中提到】
: inline函数不就是直接用code去代替函数的指针从而减少程序跳来跳去。如果是这样
: 的话,是不是就会无限的代替下去?
: 呵呵。我用Fibonacci function试了一下好像没有任何问题。 MSVS 6.0.
: #include
: using namespace std;
: inline int fib(int num)
: { switch(num) {
: case 0:
: return(0);
: break;

avatar
y*g
7
那会不会把能转换的都转成循环呢?

【在 h**o 的大作中提到】
: 看编译器的
: 有时候简单的recursion,编译器能直接算出个结果

avatar
b*a
8
even for complex loops, compiler will make it non-inline.
try g++ compiler

【在 b******a 的大作中提到】
: 什么意思?
: compiler发现是递归函数,即使声明为inline的话,也装作没看见?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。