字节序调整
inline WORD ChangeEndian(WORD value)
{
return ((value&0x00ff)<<8)|
((value&0xff00)>>8);
}
inline DWORD ChangeEndian(DWORD value)
{
return ((value&0x000000ff)<<24) |
((value&0x0000ff00)<<8) |
((value&0x00ff0000)>>8) |
((value&0xff000000)>>24);
}
inline fpos_t ChangeEndian(fpos_t value)
{
fpos_t temp = value;
char *pSource = (char *)&value;
char *pTarget = (char *)&temp;
pTarget[7] = pSource[0];
pTarget[6] = pSource[1];
pTarget[5] = pSource[2];
pTarget[4] = pSource[3];
pTarget[3] = pSource[4];
pTarget[2] = pSource[5];
pTarget[1] = pSource[6];
pTarget[0] = pSource[7];
return temp;
}
#define CHANGE_ENDIAN(value) value = ::ChangeEndian(value)
网友评论