四种方法判断栈的生长方向 Determine the Direction of Stack Growth (点击打开)
由该文章知道计算机中栈的生长方向为由高到低,及栈底为高地址,栈顶为低地址,因此函数输入参数入栈顺序可以由栈地址大小判断,地址大的先入栈,地址小的后入栈
#include<cstdio>
void Var_Order(int x, int y, int z)
{
printf("x = %d at [%X]\n", x, &x);
printf("y = %d at [%X]\n", y, &y);
printf("z = %d at [%X]\n", z, &z);
}
int main(int argc, char *argv[])
{
Var_Order(2012, 2013, 2014);
return 0;
}
/*************************
运行结果:
x = 2012 at [22FF10]
y = 2013 at [22FF14]
z = 2014 at [22FF18]
**************************/
因为参数2014的栈地址最大,可知第三个参数先
C语言函数参数入栈顺序与栈增长方向解析

本文探讨了C语言中函数参数入栈的顺序,指出栈从高地址向低地址生长,参数通常从右至左入栈。这种设计与编译器实现有关,主要是为了支持可变长参数列表,区别于Pascal等语言的从左至右入栈方式。
最低0.47元/天 解锁文章
429

被折叠的 条评论
为什么被折叠?



