реклама на сайте
подробности

 
 
> Union в разных компиляторах., не могу понять...
MicroDiP
сообщение Dec 22 2007, 16:58
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 104
Регистрация: 31-07-05
Из: Shenzhen, China (深圳市, 中国)
Пользователь №: 7 233



Столкнулся в апликухе от Микрочипа (в исходнике) с таким моментом. Код написан под MCC18. Я использую IAR-pic18. Вопрос - каким образом они объявили объединение вот таким образом:

Код
typedef union _BD_STAT
{
    byte _byte;
    struct{
        unsigned BC8:1;
        unsigned BC9:1;
        unsigned BSTALL:1;
        unsigned DTSEN:1;
        unsigned INCDIS:1;
        unsigned KEN:1;
        unsigned DTS:1;
        unsigned UOWN:1;
    };
    struct{
        unsigned BC8:1;
        unsigned BC9:1;
        unsigned PID0:1;
        unsigned PID1:1;
        unsigned PID2:1;
        unsigned PID3:1;
        unsigned :1;
        unsigned UOWN:1;
    };
    struct{
        unsigned :2;
        unsigned PID:4;                 //Packet Identifier
        unsigned :2;
    };
} BD_STAT;


Смущает собственно объявления нулевого, первого и седьмого битов в первых двух структурах (BC8, BC9 и UOWN). Ведь имена не должны повторяться ? О чём мне и сообщает IAR. Микрочиповский компилятор позволяет это делать ? 07.gif


--------------------
Все языки несут в себе черты своих обладателей. И идиомы каждого языка повторяются снова и снова: "Он чужеземец, а значит - варвар". (Роберт Хайнлайн)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016