在C / C ++中创建一个10位数据类型

时间:2016-05-27 01:47:37

标签: c++ c types

可以创建10位数据类型吗?我可以使用uint16_tuint32_t等等,但如果我想使用uint10_tuint12_t该怎么办?这可能吗?

1 个答案:

答案 0 :(得分:4)

您不能拥有大小不是字节倍数的类型 - 因此创建10位数据类型是不可启动的。

您可以创建一个表示包含10位的实体的类型:是使用std::bitset<10>还是使用16位类型的10位位域:

struct uint10_t {
    uint16_t value : 10;
    uint16_t _     : 6;
};

在这两种情况下,类型本身都将大于10位。例如,你将无法创建一个包含8个字节的数组,以适应10个字节。