История изменений
Исправление 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;
и эти структурки идут друг за дружкой, и без всяких выравниваний, даже в пределах одного байта может быть пересечение из кусков двух таких структур, часть битов принадлежит одной, а часть другой. Я все правильно понимаю?