IOS гарантированно будет с прямым порядком байтов? - PullRequest
1 голос
/ 29 октября 2019

Похоже, что процессоры ARM могут быть сконфигурированы как big-endian или little-endian. Тем не менее, как сообщают интернет-провайдеры, процессоры ARM «почти всегда» конфигурируются как little-endian. Гарантируется ли, что iOS будет запускать процессор ARM в режиме с прямым порядком байтов? Есть ли флаг времени компиляции, который я мог бы проверить, через #if или что-нибудь еще?

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

1 Ответ

1 голос
/ 29 октября 2019

На момент написания этой статьи iOS запускает ARM в режиме little-endian . Однако для архитектур, поддерживающих несколько порядков байтов, считается целесообразным обрабатывать оба случая, не делая никаких предположений о том, как программное обеспечение / прошивка более высокого уровня выполняет его. Причины - будущие изменения кода, которые затрагивают endiannes или архитектурные изменения, приводящие к фиксированному режиму endiannes. Apple несколько раз меняла архитектуру ЦП, что само по себе должно быть подсказкой, и тот факт, что сегодняшний рынок микропроцессоров и микроконтроллеров активно продвигается вперед с появлением новых продуктов и разработок, означает, что более чем хорошая практика , это почти должен . Известно, что поставщики программного и аппаратного обеспечения в секторе мобильных и интеллектуальных устройств регулярно меняют архитектуру своих процессоров. Кроме того, и, что более важно, правильная обработка многобайтового упорядочения приведет вас к надежному, надежному и перспективному решению.

...