可以在C++程序中编程检测字节序。
可以在C++程序中编程检测字节序。
有没有一种编程方式能够检测您的架构是大端还是小端? 我需要编写能够在Intel或PPC系统上执行并使用完全相同代码 (即没有条件编译)的代码。
admin 更改状态以发布 2023年5月24日
如果你有使用C++20编译器(如GCC 8+或Clang 7+),你就可以使用std::endian
。
注意:std::endian
最初位于
中,但在2019年科隆会议上被迁移到了
中。GCC 8、Clang 7、8和9仍将其置于
中,而GCC 9+和Clang 10+则将其放置于
中。
#includeif constexpr (std::endian::native == std::endian::big) { // Big-endian system } else if constexpr (std::endian::native == std::endian::little) { // Little-endian system } else { // Something else }