【发布时间】:2020-11-20 12:09:42
【问题描述】:
我正在使用 C++11 及更高版本,我在问自己是否可以安全地获取像 std::uint16_t 这样的数据类型所需的字节数来发送长度不可知的协议。更准确地说,拨打sizeof(std::uint16_t) 是否安全,我可以假设这总是2吗? std::int16_t呢?
【问题讨论】:
-
这正是
sizeof的用途,为什么不安全? -
@Barmar 因为看到 eerorika 的回答。
-
更好的是,
static_assert(CHAR_BIT == 8);并忘记它,因为您的代码不太可能在具有不同字节大小的机器上运行。