首页
社区
课程
招聘
[旧帖] [求助]结构体的大小 0.00雪花
发表于: 2011-7-12 12:19 1833

[旧帖] [求助]结构体的大小 0.00雪花

2011-7-12 12:19
1833
从正向转向逆向,又一个问题产生了。希望高人指点。。。
如下:
typedef STRUCT_TEST
{
unsigned short m_test1,
unsigned int m_test2,
unsigned char m_test3
}STRUCT_TEST_S;

typedef STRUCT
{
unsigned short m_test4,
unsigned short m_test5,
STRUCT_TEST_S* ptest
}STRUCT_S;
我想知道sizeof(STRUCT_S)==8还是11?
写上位机程序时没考虑过这些问题,现在感觉这些小问题都很有用。特别在反汇编时!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 601
活跃值: (256)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
2
888888888
2011-7-12 12:28
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
按照上面的算法 是8
2011-7-12 12:35
0
雪    币: 33
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
在arm中,如果:
LDR   R6,=STRUCT_S
我想调用STRUCT_S.ptest->m_test2,我应该用R6如何操作才能指向m_test2呢?
2011-7-12 12:39
0
雪    币: 21
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
具体要看编译器设定的对齐方式。
2011-7-12 13:09
0
雪    币: 33
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也感觉是编译器的原因~谢谢了
2011-7-12 13:47
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
应该是8吧,因为指针就占四个字节。
2011-7-12 16:57
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
8字节(回复要满6个字符)
2011-7-12 17:25
0
雪    币: 33
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
在arm编程中,指针占用多少字节?也是四个吗?
2011-7-12 17:44
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
帮顶
2011-7-12 23:52
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
arm编程不清楚,32位的程序中占四个。用sizeof看下。
2011-7-13 11:05
0
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
应该是8,ARM的指令长度或指针是32位,也就是4个字节的,
2011-7-13 11:19
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
应该是8~里面的结构体是指针类型
2011-7-13 22:45
0
雪    币: 33
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
问题已经解决了,如何在标题栏里写上【已解决】字样呢?

-------谢谢大家的热心回答~问题解决了!-----------
2011-7-14 11:42
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
32位机上是8
2011-7-14 11:46
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
5楼正解。。。。。。。。。。。。。。。。
2011-7-15 10:50
0
游客
登录 | 注册 方可回帖
返回
//