如何确定程序中栈的增长方向
2011-09-30 13:17
197 查看
函数调用时参数入栈,因此可以定义两个函数,分别输出参数地址,以此来确定栈的生长方向。
result:
//确定栈的生长方向 //自定义函数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]$ ./hello fun1: 140735673261756 fun2: 140735673261724 [scwangj@LB270107 cfd_simple]$上述程序中,首先fun1被调用,参数a入栈;在fun1函数内部,先输出参数fun1函数的参数a的地址,然后调用fun2,fun2的参数b入栈;从结果来看,linux下栈的生长方向由高地址向低地址增长。
相关文章推荐
- 如何确定栈的增长方向地址是递增还是递减
- 如何判断一个栈的增长方向
- 如何判断栈的增长方向
- Android程序如何自适应屏幕的方向和大小
- Android 如何确定camera呈像方向
- 普通程序员如何转向AI方向
- 一名普通程序员该如何转人工智能方向?
- 一名普通程序员该如何转人工智能方向?
- 普通程序员如何转向AI方向
- 普通程序员如何转向AI方向
- debian apt-get install的程序的安装目录如何确定 - [Ubuntu](转自:http://nicklj.blogbus.com/logs/33400628.html)
- 在9530手机上面,如何控制程序只能纵向显示?如何判断当前的屏幕横纵方向呢?
- 普通程序员如何转向AI方向
- 普通程序员如何转向AI方向
- 如何根据cpu的processor数来确定程序的并发线程数量
- 如何判断系统栈的增长方向(stack growth direction)
- 如何判断栈、堆的增长方向?
- 普通程序员如何转向AI方向
- IIS如何确定请求的处理程序