Компилятор C ++ конвертирует big-endian в little-endian [дубликаты]

0

Будет ли компилятор C++, VS2010, преобразовать big-endian в little-endian данные для использования на машинах x86?

  • 1
    компилятор не заботится о данных , это ваша ответственность ...
  • 0
    Компилятор заботится о правильном расположении памяти в порядке байтов с прямым порядком байтов или байтов с обратным порядком байтов, включая компиляцию числовых констант в исходном коде в машинно-зависимую кодировку, но он не может знать, поступают ли данные извне (файлы, сетевые пакеты) и т. д.) с прямым порядком байтов или прямым порядком байтов, поэтому он не может выполнять магическое автоматическое преобразование за спиной программы.
Теги:
visual-c++
endianness

2 ответа

0
Лучший ответ

Компилятор не выполнит никаких преобразований с автоматическим контентом. Компилятор при настройке x86 знает, что архитектура немного ориентирована. И поэтому он испускает соответствующие данные, которые также мало ориентированы.

Если вы получаете данные большого энтиана, и вам нужно оперировать их в маленькой форме, тогда вам нужно сделать явные шаги для его преобразования.

  • 1
    Спасибо, что поправил меня. Забыл, что сплачивают компиляторы.
0

Endianess данных не преобразуется после компиляции программы и зависит от компилятора.

Компиляторы могут быть многопользовательскими, малоподобными или обеими (для платформ, которые могут работать как в режимах little-endian, так и в режиме big-endian). Платформа x86, однако, является только мало-endian (см. Здесь)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню