C语言函数调用栈的详细教程(5)

2023-04-29 来源:飞速影视

C语言函数调用栈的详细教程


图3函数调用栈的可能内存布局
在多线程(任务)环境,栈顶指针指向的存储器区域就是当前使用的堆栈。切换线程的一个重要工作,就是将栈顶指针设为当前线程的堆栈栈顶地址。
以下代码用于函数栈布局示例:
?
//StackFrame.c
#include <stdio.h>
#include <string.h>
struct Strt{
int
member1;
int
member2;
int
member3;
};
#define PRINT_ADDR(x) printf(
"&"
#x
" = %p "
, &x)
int
StackFrameContent(
int
para1,
int
para2,
int
para3){
int
locVar1 =
1
;
int
locVar2 =
2
;
int
locVar3 =
3
;
int
arr[] = {
0x11
,
0x22
,
0x33
};
struct Strt tStrt = {
0
};
PRINT_ADDR(para1);
//若para1为char或short型,则打印para1所对应的栈上整型临时变量地址!
PRINT_ADDR(para2);
PRINT_ADDR(para3);
相关影视
合作伙伴
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)

www.fs94.org-飞速影视 粤ICP备74369512号