请教,函数在调用十,是放在哪个栈中,局部变量,全局变量呢??

echoxue 2004-11-22 08:23:13
static 类型的变量呢?
我们平常用的呢
例如:int a;其放在什么栈中,
此外,auto,resigter,的概念
...全文
99 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AthlonxpX86 2004-11-22
  • 打赏
  • 举报
回复
描述 创建时机 生存期
auto 自动变量,函数或者 函数调用时创建在函数栈上 函数结束
复合语句中声明

resigter寄存器变量,一般被 同auto 同auto
创建在处理器寄存器上
为加速变量的存取,但
少量有限

Static 静态变量,只有一个副本,程序加载时创建在进程中 程序结束后销毁
声明N次都只引用同一个 的全局数据段,
内存区域

举例一个程序帮你理解静态变量
void inc()
main()
{
inc();
inc();
inc();
}
void inc()
{
static int a;//值得注意的是a不会在函数结束时销毁,不会在次初始化
a++;
printf("A=%d",a);
}

程序运行将显示
A=1
A=2
A=3





楼主把分多给我点,打字很累啊^_^
echoxue 2004-11-22
  • 打赏
  • 举报
回复
各位大哥,能否具体一点!!!
谢谢!
echoxue 2004-11-22
  • 打赏
  • 举报
回复
老大,推荐本书看看,
我刚学VC,望多多指点!!!
谢谢了!!!
AthlonxpX86 2004-11-22
  • 打赏
  • 举报
回复
int a;
函数栈,线程堆栈
AthlonxpX86 2004-11-22
  • 打赏
  • 举报
回复
resigter 寄存器变量,高速,但有线,最好不要用
oyljerry 2004-11-22
  • 打赏
  • 举报
回复
static存放在全局数据区
薛定谔之死猫 2004-11-22
  • 打赏
  • 举报
回复
找篇缓冲区溢出原理的文章看看就清楚了

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧