проблема может быть. Какая разница в выделении памяти под эти 2 типа?
typedef struct
{
struct
{
union
{
_IO Uint16 all;
_IO XP3_BITS DATA_bit;
}XP3_DOUT;
union
{
_IO Uint16 all;
_IO XP4_BITS DATA_bit;
}XP4_DOUT;
}Connector;
}NT_GPIO_TypeDef;
и
typedef struct
{
union
{
Uint32 all;
struct
{
union
{
_IO Uint16 all;
_IO XP3_BITS DATA_bit;
}XP3_DOUT;
union
{
_IO Uint16 all;
_IO XP4_BITS DATA_bit;
}XP4_DOUT;
}Connector;
}p;
}NT_GPIO_TypeDef;
Вроде же одинаковое количество памяти должно же выделяться. Первый пример собирается, второй нет и выдаёт ошибку
sizeof твой друг 🙂 (ваш кэп)
всё дело в volatile
Обсуждают сегодня