字节对其小结
[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]开发中会遇到字节不对齐需要对齐操作,下面是此类的两个小结,以便以后开发中直接使用。[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]#define ALIGNMENT(__v, __bytes) do{ int _i=__v%__bytes; if(_i) __v+=(__bytes-_i); }while(0)
[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]_v是表示的长度,__bytes是对齐字节数[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]4字节对齐:[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]len = 10;byte = 4;[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]ALIGNMENT(len,byte);[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]len 会等于12
[p=23, null, left][font=微软雅黑, Verdana, sans-serif, 宋体][size=13px]也可以这样,8字节对齐
size_t align8(size_t s) {if(s & 0x7 == 0)return s;return ((s >> 3) + 1) << 3;}