.text和.rdata中的字符串问题

yzy6806555 2011-06-21 11:20:18
rdata段中最典型的
.rdata:0041634C aEWorkspaceVs20 db 'E:\workspace\vs2008\MSDN\Debug\PID.pdb',0
.text中
.text:00411554 byte_411554 db 73h, 6Eh, 0 ; DATA XREF: _main+180o
.text:00411557 aTkuser db 'tkUser',0 ; DATA XREF: _main+174o
.text:0041155E aHprocesstoken db 'hProcessToken',0 ; DATA XREF: _main+168o
.text:0041156C aReturnlength db 'ReturnLength',0 ; DATA XREF: _main+15Co
.text:00411579 aChbuffer db 'chBuffer',0 ; DATA XREF: _main+150o
上述几个都是我在函数中定义的几个变量

我的问题是:
全局变量的数据影响着程序的大小,就好比是上述的rdata中的字符串;但是text段中定义个几个变量好像也要在程序未运行前占用空间,这个作何解释啊?
还有个问题
int gInt=12;
char gChar[10]="abcdefg";
char *gP=gChar;
static char sgChar[20]="GlobalstaticChar";
const char cgChar[15]="constChar";
const int cgInt=7654321;
在IDA里我在data段中我找不到cgchar和gint,cgint,而且在rdata中也没有找到cgdata,而且整型变量我一个都没有找到
...全文
249 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-06-25
  • 打赏
  • 举报
回复
const int cgInt=7654321;不需要专门放一个地方
用到这个常量时是作为指令的一部分
Areslee 2011-06-23
  • 打赏
  • 举报
回复
C++的常量可能不分配空间的
yzy6806555 2011-06-22
  • 打赏
  • 举报
回复
来个人解释下啊,别尽说写表面的
赵4老师 2011-06-21
  • 打赏
  • 举报
回复
《程序员的自我修养——链接、装载与库》
yzy6806555 2011-06-21
  • 打赏
  • 举报
回复
谢谢,那个gint能找到了,我说错了。那常量不是应该在rdata中,但是我找到啊。还有第一个问题,text段中也有变量定义占用空间,这个会不会占用程序大小呢
bdmh 2011-06-21
  • 打赏
  • 举报
回复
全局区和常量区是两个地方
ryfdizuo 2011-06-21
  • 打赏
  • 举报
回复
你说的cgchar,gint,cgint都是常量,常量跟全局变量不在一起。

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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