В C ++ нет 24-битного типа переменной.
Вы можете использовать упакованную структуру:
struct ThreeBytes {
uint32_t value:24;
};
Но не гарантируется, что sizeof ThreeBytes == 3
.
Вы также можете просто использовать uint32_t
или sint32_t
, в зависимости от того, что вам нужно.
Другой вариант - использовать std::bitset
:
typedef std::bitset<24> ThreeBytes;
Затем создайте массив из этого:
ThreeBytes *myArray = new ThreeBytes[10];
Конечно, если вам действительно нужны «три байта», вы можете создать массив массивов:
typedef uint8_t ThreeBytes[3];
Обратите внимание, что uint8_t
и друзья нестандартны и используются просто для пояснения.