我正在使用 C++11 及更高版本,我在问自己是否可以安全地获取数据类型所需的字节数,例如std::uint16_t发送长度不可知的协议。更精确的调用是否安全,sizeof(std::uint16_t)我可以假设这总是 2 吗?怎么样std::int16_t?
在 C++ 中获取数据类型字节数的安全方法
那将是sizeof运营商。
更准确地说,调用 sizeof(std::uint16_t) 是否安全,我可以假设这总是 2 吗?
不。当字节为 8 位时,您只能依赖它。
std::int16_t 呢?
相同的。
对于网络通信,您可能需要知道一个类型有多少个八位字节。这可以安全地计算如下:sizeof(std::uint16_t) * (CHAR_BIT / 8),并且将为 2 std::uint16_t。请注意,并非所有系统都必须具有该std::uint16_t类型。