LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

ну т.е. образно говоря

#define BIGENDIAN 1
#define LITTLEENDIAN 0

#define SIGNED 1
#define UNSIGNED 0
struct
{
  uint8_t startbit : 1; // тут всегда идет 1 - стартовый бит
  uint8_t lenght : 6;   // от 0 до 63 - это длина от 1 до 64
  uint8_t sign   : 1;   // знаковость
  uint8_t endian : 1;   // тупо-остроконечность
  uint8_t data[8];      // данные. Могут быть короче 64 бит (8 байт)
} test;

и эти структурки идут друг за дружкой, и без всяких выравниваний, даже в пределах одного байта может быть пересечение из кусков двух таких структур, часть битов принадлежит одной, а часть другой. Я все правильно понимаю?

Исправление SZT, :

ну т.е. образно говоря

#define BIGENDIAN 1
#define LITTLEENDIAN 0
struct
{
  uint8_t startbit : 1; // тут всегда идет 1 - стартовый бит
  uint8_t lenght : 6;   // от 0 до 63 - это длина от 1 до 64
  uint8_t endian : 1;   // тупо-остроконечность
  uint8_t data[8];      // данные. Могут быть короче 64 бит (8 байт)
} test;

и эти структурки идут друг за дружкой, и без всяких выравниваний, даже в пределах одного байта может быть пересечение из кусков двух таких структур, часть битов принадлежит одной, а часть другой. Я все правильно понимаю?

Исходная версия SZT, :

ну т.е. образно говоря

#define BIGENDIAN 1
#define LITTLEENDIAN 0
struct
{
  uint8_t startbit : 1; // тут всегда идет 1 - стартовый бит
  uint8_t lenght : 6;   // от 0 до 63 - это длина от 1 до 64
  uint8_t endian : 1;   // знаковость
  uint8_t data[8];      // данные. Могут быть короче 64 бит (8 байт)
} test;

и эти структурки идут друг за дружкой, и без всяких выравниваний, даже в пределах одного байта может быть пересечение из кусков двух таких структур, часть битов принадлежит одной, а часть другой. Я все правильно понимаю?