1. 通过指针访问自定义数据类型
typedef struct Role {
int HP;
int MP;
}*PRole;
int main()
{
Role user;
PRole puser = &user;
puser->HP = 50;
puser->MP = 50;
user.HP = 50;
user.MP = 50;
}
*PRole
定义为结构体Role
的指针,使其可通过指针访问结构体。- 指针用
->
访问; .
对应的是实体;
反汇编:
Role user;
PRole puser = &user;
007C17D2 lea eax,[user] // []内容代代表地址, eax = [user]
007C17D5 mov dword ptr [puser],eax // [puser] = [user]
puser->HP = 50;
007C17D8 mov eax,dword ptr [puser]
007C17DB mov dword ptr [eax],32h
puser->MP = 50;
007C17E1 mov eax,dword ptr [puser]
007C17E4 mov dword ptr [eax+4],32h //偏移 4个字节
user.HP = 50;
007C17EB mov dword ptr [user],32h
user.MP = 50;
007C17F2 mov dword ptr [ebp-0Ch],32h