用 union 的大小定义指向内存的指针

Define pointer to memory with the size of union

我正在为下面的演示代码苦苦挣扎:

typedef volatile union
{
  unsigned U;
  int I;
  struct
  {
    unsigned some_array:32;
  } B;
} bar;
#define foo (*( bar*) 0xABCDU) 

我知道 0xABCDU 是内存中的某个地址。 我怎样才能阅读英文的 foo

( bar*) 0xABCDU0xABCDU 重新解释为指向 bar 的指针。 *( bar*) 0xABCDU 是取消引用的指针(如果是 C++,则为引用)。

(外括号是为了防止由于运算符的优先级而可能造成的误解)

foo是unionbar指针引用的对象。指向 bar 的指针具有从整数常量转换而来的值。