iOS 是否保证是小端?
Is iOS guaranteed to be little-endian?
看来 ARM 处理器可以配置为大端或小端。但是,根据互联网,ARM 处理器 "almost always" 配置为小端。是否保证 iOS 将 运行 ARM 处理器处于小端模式?是否有我可以通过 #if
或其他任何方式检查的编译时标志?
尽管 Foundation 中有处理不同字节顺序的函数,但如果可以确定字节顺序始终相同,似乎可以省去一些麻烦。
在撰写本文时,iOS 在小端 模式下运行 ARM。然而,对于支持多端字节序的架构,处理这两种情况而不对更高层 software/firmware 如何运行它做任何假设被认为是一种很好的做法。原因是未来的代码更改会影响字节顺序或导致固定字节顺序模式的体系结构更改。 Apple 已多次更改 CPU 架构,仅此一项就应该是一个提示,而今天的微处理器和微控制器市场正在积极推动新产品和开发的事实意味着 不仅仅是一个良好实践,几乎是必须。众所周知,mobile/smart 电器行业的软件和硬件供应商会定期更改其 CPU 架构。此外,更重要的是,正确处理多字节排序将使您获得一个健壮、可靠且面向未来的解决方案。
看来 ARM 处理器可以配置为大端或小端。但是,根据互联网,ARM 处理器 "almost always" 配置为小端。是否保证 iOS 将 运行 ARM 处理器处于小端模式?是否有我可以通过 #if
或其他任何方式检查的编译时标志?
尽管 Foundation 中有处理不同字节顺序的函数,但如果可以确定字节顺序始终相同,似乎可以省去一些麻烦。
在撰写本文时,iOS 在小端 模式下运行 ARM。然而,对于支持多端字节序的架构,处理这两种情况而不对更高层 software/firmware 如何运行它做任何假设被认为是一种很好的做法。原因是未来的代码更改会影响字节顺序或导致固定字节顺序模式的体系结构更改。 Apple 已多次更改 CPU 架构,仅此一项就应该是一个提示,而今天的微处理器和微控制器市场正在积极推动新产品和开发的事实意味着 不仅仅是一个良好实践,几乎是必须。众所周知,mobile/smart 电器行业的软件和硬件供应商会定期更改其 CPU 架构。此外,更重要的是,正确处理多字节排序将使您获得一个健壮、可靠且面向未来的解决方案。