判断函数参数入栈顺序的一个参数代码如下:
void f(int i, int j, int k);
int main(void)
{
int a = 1, b =2, c = 3;
f(a,b,c);
return 0;
}
void f(int i, int j, int k)
{
int h;
int g;
printf("k:%x\n",&k);
printf("j:%x\n",&j);
printf("i:%x\n",&i);
printf("h:%x\n",&h);
printf("g:%x\n",&g);
}
//C程序中,栈底为高地址,栈顶为低地址
如果f函数中,三个变量所分配地址顺序为k-->i和h-->g的顺序相同,说明函数的入栈顺序是从右向左;