level 9
影圣天
楼主
按照内联函数的定义,他不是在编译时将函数体代码插入到函数调用处吗?
举个例子:
#include<iostream>
using namespace std;
inline int as(int a,int b)
{
int t;
t=a;
a=b;
b=t;
return 100000;
}
int main()
{
int x(1),y(3);
as(x,y);
cout<<x<<' '<<y;
return 0;
}
那么内联后不就是就相当于把as的函数的形参替换后复制张贴到主函数中吗?这样的话x和y的值应该交换了吧!即使我不用内联函数的返回值。请问又为什么编译器没有交换他们呢?![[乖]](/static/emoticons/u4e56.png)



2015年11月14日 01点11分
1
举个例子:
#include<iostream>
using namespace std;
inline int as(int a,int b)
{
int t;
t=a;
a=b;
b=t;
return 100000;
}
int main()
{
int x(1),y(3);
as(x,y);
cout<<x<<' '<<y;
return 0;
}
那么内联后不就是就相当于把as的函数的形参替换后复制张贴到主函数中吗?这样的话x和y的值应该交换了吧!即使我不用内联函数的返回值。请问又为什么编译器没有交换他们呢?




