external unions

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
                        Здравствуйте,  All!

Hарод, а как в IAR AVR 4.12A получить (прописать) доступ к следующему
сабжу в других программных модулях:

__no_init typedef  union  {struct{uchar   CODE,KEY,STATE,CNT;};

 struct {                         uchar SCAN: 5;
                                  uchar RET:  1;
                                  uchar BEEP: 1;
                                  uchar KP:   1;
 };
} KBR;

KBR KBRD;

В документации на компилятор что-то ничего подходящего не нашел.

Всего доброго. Eduard
... No tamplate

external unions
Привет Eduard!

13 Feb 07 16:31, Eduard Fokin писал All:

 EF> Hарод, а как в IAR AVR 4.12A получить (прописать) доступ к следующему
 EF> сабжу в других программных модулях:

 EF> __no_init typedef  union  {struct{uchar   CODE,KEY,STATE,CNT;};

 EF>  struct {                         uchar SCAN: 5;
 EF>                                   uchar RET:  1;
 EF>                                   uchar BEEP: 1;
 EF>                                   uchar KP:   1;
 EF>  };
 EF> } KBR;

    Hикак. Как можно получить доступ к неименованным элементам объединения?
Только поименовать их. То, что ты написал, эквивалентно примерно такой
конструкции:

union {
        char;
        void *;
};

    Сравни:

union {
        char as_char;
        void * as_ptr;
};

    Вот теперь можно работать со значениям такого объединения:

some_var.as_char = 'F';
other_var.as_ptr = malloc(100);

 EF> В документации на компилятор что-то ничего подходящего не нашел.

    И не должен был. Такие вещи надо искать не в документации на компилятор, а
в документации на язык C. :)

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Завтрак съешь сам, обед оставь себе, а ужин - никому не отдавай!

external unions
Привет, Eduard !


 13 Feb 07 , 16:31  Eduard Fokin писал к All:

EF> Hарод, а как в IAR AVR 4.12A получить (прописать) доступ к следующему
EF> сабжу в других программных модулях:

EF> __no_init typedef  union  {struct{uchar   CODE,KEY,STATE,CNT;};

EF>  struct {                         uchar SCAN: 5;
EF>                                   uchar RET:  1;
EF>                                   uchar BEEP: 1;
EF>                                   uchar KP:   1;
EF>  };
EF> } KBR;

EF> KBR KBRD;

EF> В документации на компилятор что-то ничего подходящего не нашел.

В документации(стандарте) на язык искал?

Если нужна общая глобальная переменная - то в инклюднике ее объявляешь как
extern KBR kbrd, а в одной из единиц компиляции (дополнительно) пишешь то же
самое, но без extern.

Кстати, я предпочитаю дефайны одними большими буквами, имена типов/классов с
большой, а переменные и поля маленькими. Читабельность текста повышается.

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... башни-виртуалы

external unions
                        Здравствуйте,  Nickita!

15 Фев 07 в 08:51, Nickita A Startcev пишет к Eduard Fokin:


 EF>> В документации на компилятор что-то ничего подходящего не нашел.

 NS> В документации(стандарте) на язык искал?

 NS> Если нужна общая глобальная переменная - то в инклюднике ее объявляешь
 NS> как extern KBR kbrd, а в одной из единиц компиляции (дополнительно)
 NS> пишешь то же самое, но без extern.

Большое спасибо всем ответившим, так и сделал до полученных ответов. Подсказку
нашел в
"Хрестоматия по программированию на Си в Unix",Андрей Богатырев,1992-95 (эл.
версия).
До этого смотрел несколько книг , в которых объясняют как писать программы на
Си.
В этой объясняют что надо делать, чтобы эти программы работали.


 NS> Кстати, я предпочитаю дефайны одними большими буквами, имена
 NS> типов/классов с большой, а переменные и поля маленькими. Читабельность
 NS> текста повышается.

Хм. А у меня все с точностью до наоборот, только переменные в "дребезжащем"
виде.
Пока полет нормальный.

Всего доброго. Eduard
... No tamplate

Site Timeline