[an error occurred while processing this directive]
в стандартных (переносимых) исходниках обычно еще ENDIAN учитывают
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено yes 14 ноября 2002 г. 12:36
В ответ на: Ответ: Другой вариант отправлено Bill 14 ноября 2002 г. 12:16

как-то так

union {
.....
#ifdef BIG_ENDIAN
char hi,low;
#else
#ifdef LITTLE_ENDIAN
char low,hi;
#else
#error "ENDIANESS UNDEFINED"
#endif
#endif

а по простому можно макросы указать

#define HIGH(x) ((x)>>8)
#define LOW(x) ((x)&0xff)
ну и вообще можно в коде прямо писать а младший байт char a=(char)b;

но в этом случае полагаемся на "ум" компилятора, который должен понять что не за интом, а за чаром в память лезть

-----------

зы - сегодня у меня кривизна в руках - пишу поэтому в конфу а не в свои файлы :)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru