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

 
 
> А кто ткнет в наиболее правильный способ, борьбы с индианностью в С
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
Ответов
Zig
сообщение Jul 18 2005, 14:07
Сообщение #2


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

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



Можно ещё попробовать вот такую функцию:

Код
/*
Вычисление endian'ности в реальном времени
*/
int is_little_endian( void )
{
union
   {
       unsigned long i;
       unsigned char b[sizeof(i)];
   } test;

}
Go to the top of the page
 
+Quote Post

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


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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 08:13
Рейтинг@Mail.ru


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