我正在尝试为 Atmel 微控制器编写 C++ 程序。
我需要使用一些已经在 ASF 库中编写的函数,我通过将一些代码复制到 C++ 函数中来做到这一点。
我在编译时收到此错误:
“union Pm”没有名为“PM_CPUMASK”的成员
类型联合Pm
看起来像这样:
typedef union {
struct {
....
} bf;
struct {
....
RwReg PM_CPUMASK;
....
} reg;
} Pm;`
在 ASF 代码中,成员PM_CPUMASK
的访问方式如下:
unsigned int mask = *(&PM->PM_CPUMASK + busId);
但我得到一个错误。我认为这在 C 中是有效的,但在 C++ 中我需要访问命名的结构,然后是实际的成员。使用*(&PM->reg.PM_CPUMASK...)
我没有错误,但是有没有办法在 C++ 编译器中激活这种成员访问方式?
顺便说一句,这两个结构的成员没有命名冲突。谢谢。