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