要组织一个报文,前两位是定义整个报文的长度,就是长度如何设置及16进制下赋值问题,具体见里,谢谢!
char buf[2048];buf[0],buf[1] 为整个报文的长度
如果长度为85位,不知如何写,在16进制下看到是:00 55
如果长度为255位,不知如何写,在16进制下看到是:00 ff
如果长度为280位,不知如何写,在16进制下看到是:01 18
谢谢!
struct tb
(
name char[4],
book char[6],
looy char[4]
);
struct tb mytb;
我现在知道looy 这个位置在16进制下看到是 00 00 00 22
我想把这个值赋给mytb 的looy ,一般字符串用memcpy(mytb.looy , "abcd ",4)
谢谢!
[解决办法]
char buf[2048] ;
char tmp[2] ;
short num ;
num = 85 ;
memcpy(tmp, &num, 2) ;
buf[0] = tmp[1] ;
buf[1] = tmp[0] ;
[解决办法]
union stream{
char buf[2048];
struct{
short num;
char dat[2046];};
};
stream a;
a.num = ...
针对tb;可以这样:
union dd{
tb t;
struct {
char fo[10];
long len;};
};
这样,dd d;tb mytb;
d.len = 0x22;mytb = d.t;//--- mytb.looy <== "\0\0\0\22 ";
[解决办法]
unsigned short Mess=85;
char *lpBuf=buf;
*(unsigned short*)lpBuf=Mess;