【发布时间】:2023-03-25 03:09:01
【问题描述】:
如何在编译时确定我的平台是小端还是大端?我已经看到了许多在运行时使用强制转换来确定的方法,以及一些依赖于平台的选项。是否有可移植或标准的方法来执行此操作?
constexpr bool is_little_endian = ?;
【问题讨论】:
-
这个问题被标记为与stackoverflow.com/questions/4239993/… 重复,但这个问题是针对 C 而不是 C++。
-
请注意,这里提供的解决方案与我提议的 dup 中的解决方案相同:stackoverflow.com/a/38141476/1896169
-
我猜你想知道字节序这样 ...?大多数依赖字节顺序的东西真的想从一个翻译到另一个。这正是htonl 和相关函数的用途。我不会对其他有效案例的问题打折扣,但如果您不需要,请不要重新发明轮子!
-
@Justin 有an answer there that uses std::endian,但问题并没有具体要求编译时解决方案,它似乎迷失在噪音中。问题本身不是重复的,当有人提供该答案时它会变成重复吗?
标签: c++