Wednesday, August 24, 2011

转换big endian和little endian (from stackoverflow)

在stackoverflow上看到一个适用于所有类型的转换函数,觉得很不错,收录一下。

原文

void SwapBytes(void *pv, size_t n)
{
   
char *p = pv;
    size_t lo
, hi;
   
for(lo=0, hi=n-1; hi>lo; lo++, hi--)
   
{
       
char tmp=p[lo];
        p
[lo] = p[hi];
        p
[hi] = tmp;
   
}
}
#define SWAP(x) SwapBytes(&x, sizeof(x));

 

No comments: