【发布时间】:2016-02-11 19:59:27
【问题描述】:
我已经用位域定义了我的结构。
typedef struct{
unsigned char primero;
unsigned int bit1: 1;
unsigned int bit2: 1;
unsigned char segundo;
unsigned char array[4];
unsigned int offset: 6;
} date;
我想通过这个特定的位顺序的套接字发送这些数据。
char auxsendbuf[BUF_SIZ];
memset(sendbuf, 0, BUF_SIZ);
date *st = (date *) auxsendbuf;
st->primero = 0x01;
st->bit1 = 1;
st->bit2 = 1;
st->segundo = 0x03;
st->array[0] = 0x04;
st->array[1] = 0x05;
st->array[2] = 0x06;
st->array[3] = 0x07;
我的问题是 bit1 和 bit2 用 0 填充以完成我不想发送的额外字节。结果是这样的……
01 03 03 04 05 06 07 00 50
我怎样才能强制咬合顺序?如果需要,我可以使用 C++。
【问题讨论】:
-
您通过网络发送的身份编码内容(带有位字段!)正在自找麻烦。