<分区>
我的问题是,我想将结构从 32 位空间移动到 64 位空间。
假设我在具有相同字段的 64 位空间中声明相同的结构,有没有办法将相应的字段从 32 位结构复制到 64 位结构?
让我介绍一下实际问题,这与缓存有关,我们在 32 位空间的 ram 上有大小限制,所以如果我们在 ram 上有 1G 空间并且我的单个缓存对象的结构大小为 1M那么我可以存储的对象数量限制为 1G/1M。因此,为了解决这个问题,我想在 64 位 spcace 中声明我的结构(这样就没有 spcace crunch )并且对象的数量实际上可以增加到无限
假设我们有一个 32 位空间的结构
typedef struct x{
int a ;
int *b ;
} x_t;
现在我想在 64 位空间中移动这个结构,移除 32 位空间结构。
typedef struct x_64{
int a ;
int *b ;
} x_64_t;
因此,如果以前我的变量像 x->b 或 x.a 一样被访问,我如何确保将相同的值传输到 64 位结构,而不改变整个代码的功能。
一种方法可以是在 64 位空间中有一个缓冲区,对于 32 位空间中的变量的每次访问都会进入缓冲区的 64 位写入/读取。但这是一个乏味的过程,是否可以有其他选择??