#include "pch.h"
#include <iostream>
#include <bitset>
using namespace std;
typedef struct {
union {
uint32_t _32;
uint16_t _16;
uint8_t _8[2];
}gpr[8];
uint32_t eax = gpr[0]._32;
uint32_t ecx = gpr[1]._32;
}CPU_State;
int main()
{
CPU_State cpu;
//先测试gpr0和gpr2
//随便写的数据
cpu.gpr[0]._32 = 0xabcdf1f0;
cpu.gpr[1]._32 = 0xabcdf1f1;
//现在只能输出未初始化的数据
//我的电脑输出cccccccc和cccccccc
cout << hex << cpu.eax << endl;
cout << hex << cpu.ecx << endl;
}
我现在给gpr[0]._32和gpr[1]._32赋值。
现在输出的eax和ecx的值是错的。
我想把eax和ecx的值关联与gpr[0]._32和gpr[1]._32。
限定只能修改结构体的定义。
请问我该如何更改CPU_State这个结构体的定义,使得eax,ecx的值分别等于gpr[0]._32和gpr[1]._32。