gpt4 book ai didi

c++ - 有没有办法让两个不同大小的变量共享一个内存地址而不用将它们声明为指针?

转载 作者:太空狗 更新时间:2023-10-29 20:08:30 26 4
gpt4 key购买 nike

我正在开发一个个人项目,一个模拟器。假设有两个寄存器 H 和 L,每个一个字节长。所以我们可以用一个字节写入 H 或 L。但是,某些指令要求您将两个字节写入 H 和 L,或 HL。第一个字节转到 H,第二个字节转到 L。根据我的实现方式,有些东西很难实现。

所以我的想法是让 HL 成为一个两字节的单词。但是,仍然存在H和L变量,它们分别与HL的第一个字节和HL的第二个字节共享相同的地址。

我可以做指针,但是我真的不想将我所有的寄存器都声明为指针。

我在想的一件事是 union ,就像这样:

union {
BYTE H;
WORD HL;
}

但是我不知道如何将 L 作为第二个字节放在那里。

有什么想法吗?

最佳答案

你可以这样做:

union
{
struct
{
BYTE L, H;
} b;

WORD HL;
} u;

一些编译器允许你这样做,尽管它是非标准的:

union
{
struct
{
BYTE L, H;
};

WORD HL;
} u;

关于c++ - 有没有办法让两个不同大小的变量共享一个内存地址而不用将它们声明为指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53576581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com