#define READ_SHORT(dst, src) do { (src) = (zm_uint8*)((zm_int)((zm_uint8*)(src) + 1)&(~1)); (dst) = *(zm_uint16*)(src); (src)=((zm_uint8*)(src))+2; }while(0)
从src开始处读取2个字节赋给dst.2字节对齐。先进行src的地址能被2整除操作:+1&(~1);经过运算后使得src的位置对齐,接下来开始读取2个字节给dst.
#define READ_SHORT(dst, src) do { (src) = (zm_uint8*)((zm_int)((zm_uint8*)(src) + 1)&(~1)); (dst) = *(zm_uint16*)(src); (src)=((zm_uint8*)(src))+2; }while(0)
从src开始处读取2个字节赋给dst.2字节对齐。先进行src的地址能被2整除操作:+1&(~1);经过运算后使得src的位置对齐,接下来开始读取2个字节给dst.