注册 登录
编程论坛 新人交流区

调用函数的返回地址的计算

trackoftime 发布于 2007-10-10 23:24, 317 次点击

#include "stdio.h"

void fun1()
{
printf("this is fun1!");
}
void fun2()
{
printf("this is fun2!");
}
void main()
{
int *ret;
fun2();
ret=(int*)(&ret+2);//这句取得fun2()的返回值地址,我不明白为什么是加2,在linux下
//应该是-4的。
*ret=&fun1;
}
问题是关于压栈顺序,是不是windows和Linux不同呢?大家可以交流一下

0 回复
1