1

我正在使用 C++11 及更高版本,我问自己是否可以安全地获取数据类型所需的字节数,例如std::uint16_t发送长度不可知的协议。更准确地说,打电话安全sizeof(std::uint16_t)吗?我可以假设这总是2吗?怎么样std::int16_t

4

1 回答 1

6

在 C++ 中获取数据类型的字节数的安全方法

那将是sizeof运营商。

更准确地说,调用 sizeof(std::uint16_t) 是否安全,我可以假设这总是 2 吗?

不可以。您只能依赖于 byte 为 8 位。

std::int16_t 呢?

相同的。


对于网络通信,您可能需要知道一个类型有多少个八位字节。可以像这样安全地计算:sizeof(std::uint16_t) * (CHAR_BIT / 8),对于 ,将是 2 std::uint16_t。请注意,并非所有系统都必须具有该std::uint16_t类型。

于 2020-07-30T17:33:22.127 回答