如何确定程序中栈的增长方向

来源:互联网 发布:yy加好友软件 编辑:程序博客网 时间:2024/06/04 18:53

函数调用时参数入栈,因此可以定义两个函数,分别输出参数地址,以此来确定栈的生长方向。

//确定栈的生长方向//自定义函数fun1() 和fun2(),其中fun1()内部调用fun2(),输出参数地址#include<stdio.h>void fun2(int b) { printf("fun2: %ld\n", &b);}void fun1(int a) { printf("fun1: %ld\n", &a);fun2(a);}int main( ) {int a = 1;fun1(a);return 0;}

result:

[scwangj@LB270107 cfd_simple]$ gcc -o hello hello.c[scwangj@LB270107 cfd_simple]$ ./hellofun1: 140735673261756fun2: 140735673261724[scwangj@LB270107 cfd_simple]$ 
上述程序中,首先fun1被调用,参数a入栈;在fun1函数内部,先输出参数fun1函数的参数a的地址,然后调用fun2,fun2的参数b入栈;从结果来看,linux下栈的生长方向由高地址向低地址增长。

原创粉丝点击