[an error occurred while processing this directive]
|
Но похоже тут я лохонулся - поэтому скорее это вопрос:
Есть структура - из канала приходит блок данных - когда я его копирую в структуру - происходят интересные вещи - слова превращаются в байты. Судя по spru281d должно быть наоборот - char занимать два байта. Непонятно. Значит так делать в CCS нельзя?
typedef struct {
char syncro_byte;
int PID;
char type;
int pos;
int size;
} TRSBlockHeader;
int i;
static TRSBlockHeader rsb; // структура
static unsigned char rsblock[10]; // данные из канала
rsblock[0] = 'G'; // заполняем сами
rsblock[1] = 3;
rsblock[2] = 0;
rsblock[3] = 1;
rsblock[4] = 0xBB;
rsblock[5] = 0;
rsblock[6] = 0xCC;
rsblock[7] = 0;
i = sizeof(rsb); // компилер выдает 5 байт (!) - размер структуры
memcpy(&rsb, rsblock, sizeof(rsb));
i = rsb.type; // = 0
i = rsb.pos; // = 1
i = rsb.size; // = 0xBB
Как минимум странно :(((
E-mail: info@telesys.ru