如何确定你的C/C++编译器采用哪种压栈顺序?
#include<stdio.h>
void foo(int i,int j)
{
int m,n;
printf("%x/n%x/n%x/n%x/n",&j,&i,&m,&n);
}
int main()
{
int i=3;
foo(++i,i++);
return 0;
}
运行上面程序,
如果j->i的地址增长顺序和m->n的地址增长顺序相同, 则是 从右到左, 否则是 从左到右.
与本文相关知识点,
请看另一篇文章:
cdecl, stdcall, pascal,fastcall 都有什么区别,具体是什么调用约定?
http://blog.csdn.net/Mobidogs/archive/2007/04/03/1550489.aspx
.
.
.
#include<stdio.h>
void foo(int i,int j)
{
int m,n;
printf("%x/n%x/n%x/n%x/n",&j,&i,&m,&n);
}
int main()
{
int i=3;
foo(++i,i++);
return 0;
}
运行上面程序,
如果j->i的地址增长顺序和m->n的地址增长顺序相同, 则是 从右到左, 否则是 从左到右.
与本文相关知识点,
请看另一篇文章:
cdecl, stdcall, pascal,fastcall 都有什么区别,具体是什么调用约定?
http://blog.csdn.net/Mobidogs/archive/2007/04/03/1550489.aspx
.
.
.