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

echoxue 2004-11-22 08:23:13
static 类型的变量呢?
我们平常用的呢
例如:int a;其放在什么栈中,
此外,auto,resigter,的概念
...全文
63 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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存放在全局数据区
回复
找篇缓冲区溢出原理的文章看看就清楚了
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-11-22 08:23
社区公告

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