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

 
 
> А кто ткнет в наиболее правильный способ, борьбы с индианностью в С
Evgeny_CD
сообщение Jul 11 2005, 12:55
Сообщение #1


Гуру
******

Группа: СуперМодераторы
Сообщений: 2 065
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 892



Пишется код. Он будет идти на разных платформах/компилерах. Почти наверняка будет разная endian: младший байт вначале (прямой порядок, Little Endian) или старший байт в начале (обратный порядок, Big Endian).

Соотвественно, если к какой-то переменной обращаются не только как, например, int (он тоже разный на разных платформах), но и как к массиву из 2 или 4 байтов, то это вызовет очень веселые глюки.

Кстати, а с 32 битами приколов разной индианности не бывает (когда для dword и word раные endian)?

Какой наиболее правильный способ борьбы с этим?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andrew2000
сообщение Jul 11 2005, 13:20
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



#ifdef BIG_ENDIAN
#define intswap(x) ((((x)&0x00ff)<<8)|(((x)& 0xff00)>>8))
#else
#define intswap(a) a
#endif
или что-то типа этого
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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