首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这样的数据如何打包

2013-04-20 
这样的数据怎么打包数据格式语法长度注释head32已知DataLength2数据长度DataFeildm数据域Paddingn-34-m数

这样的数据怎么打包
数据格式
语法            长度              注释
head           32                已知
DataLength     2                 数据长度
DataFeild      m                 数据域
Padding        n-34-m            数据不满就填充0

数据域格式
语法            长度              注释
Command        1                0x08
Length         4                0x00000006
Status         2                0x0000
DataTime       4                时间数据
时间数据的格式是:time_t;

每次传输数据的大小是8KB;

请问下面的这个数据域我要怎么打包? X
[解决办法]
用紧凑的结构体即可:


#pragma pack(1)

typedef struct
{
unsigned char command;
unsigned int length;
unsigned short status;
time_t data_time;
}data_feild_t;

typedef struct
{
unsigned int head;
unsigned short data_length;
data_feild_t data_feild;
unsigned char padding[8 * 1024 * 1024 - 34 - sizeof(data_feild_t)];
}package_t;

热点排行