首页 新闻 会员 周边 捐助

进程 内存分类

0
悬赏园豆:40 [已解决问题] 解决于 2012-04-12 11:25

    最近开始看侯大翻译的《win32多线程程序设计》,提到:

     内存可以大致分为三种类型: 
     Code:readonly,CPU唯一允许执行的内存 
     Data:程序中的所有变量(不包括函数中的局部变量),可区分为全局变量和静态变量两种,线程也可以使用malloc或者new动态配置内存。 

     Stack 调用函数时所用的堆栈空间,其中有局部变量,每个线程产生时配有一个堆栈。
 
    问题:
    1.对象(类实例化)中的变量,属于哪种
    2.可否详细讲讲Code和Data的概念

    

    十分感谢!

木愚的主页 木愚 | 初学一级 | 园豆:20
提问于:2012-04-06 22:21
< >
分享
最佳答案
0

你应该去搜索一下PE的格式,data code等段的解释看PE的格式比较清楚。

在win32下,线程调用malloc和new分配的存储实在CRT堆上进行的。局部变量存储在栈,函数调用需要保存调用地址信息,参数信息等,需要进行一系列的入栈出栈操作,这时候使用的存储是栈空间。

推荐给你一本书:

程序员的自我修养- 链接、装载与库

收获园豆:40
zsounder | 老鸟四级 |园豆:2819 | 2012-04-07 17:57

    查看了下PE格式和《程序员的自我修养- 链接、装载与库》,十分地悲催表示下:自己的功力还是不够的,只好留着给以后的自己看了。

木愚 | 园豆:20 (初学一级) | 2012-04-12 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册