直到最近,我认为通过指定架构是big-endian
还是little-endian
,我们将覆盖大多数系统(middle-endian
除外),但这些系统并不常见)。但后来,我读到字节序“原子”可能大于字节,所以这些系统:
将以不同的方式编码整数。
问题:原子论等于或大于2的常见系统是什么?
其他问题
uint32_t
和uint64_t
的不同原子?)char
始终为1字节长?答案 0 :(得分:1)
如果您需要担心机器的特定本机字节顺序,可以使用ntohl()
和ntohs()
等功能,或者一次只读取一个字节。
无法保证char
正好是8位宽(请参阅<limits.h>
检查数字),但char
保证至少为8位宽(所以char[]
可以保存UTF-8字符串)并且sizeof(char)
保证为1.如果您需要精确的8位宽类型,请使用uint8_t
。