開發中會遇到字節不對齊須要對齊操做,下面是此類的兩個小結,以便之後開發中直接使用。spa
#define ALIGNMENT(__v, __bytes) do{ int _i=__v%__bytes; if(_i) __v+=(__bytes-_i); }while(0)code
_v是表示的長度,__bytes是對齊字節數開發
4字節對齊:while
len = 10;byte = 4;co
ALIGNMENT(len,byte);return
len 會等於12
也能夠這樣,8字節對齊
size_t align8(size_t s) {if(s & 0x7 == 0)return s;return ((s >> 3) + 1) << 3; }