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

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

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

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

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

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