一、按byte读写的宏
#define BYTE0(x) (*(((uint8_t*)&(x)) + 0))
#define BYTE1(x) (*(((uint8_t*)&(x)) + 1))
#define BYTE2(x) (*(((uint8_t*)&(x)) + 2))
#define BYTE3(x) (*(((uint8_t*)&(x)) + 3))二、读写调用案例
// 大端方式打包
int sum = 0;
uint8_t pkgBuf[2];
int i = 0;
pkgBuf[i++] = BYTE1(sum);
pkgBuf[i++] = BYTE0(sum);
// 大端包数据解析
int sum = 0;
uint8_t pkgBuf[2];
int i = 0;
BYTE1(sum) = pkgBuf[i++];
BYTE0(sum) = pkgBuf[i++];
// 小端的BYTE1和BYTE0调换位置
本文介绍了用于按字节读写变量的宏定义,如BYTE0、BYTE1、BYTE2和BYTE3,以及如何使用这些宏进行大端方式的数据打包和解析。同时提到了在小端系统中,字节顺序会有所不同。
5万+

被折叠的 条评论
为什么被折叠?



