void to_big_endian(uint32_t a,void *b)
请将a转换为大端表示,保存在b指向的内存里
请确保该程序在大端机器和小端机器上都能运行
void to_big_endian(uint32_t a,void *b)
{
static uint32_t mem=0;
union w
{
int a;
char b;
} c;
c.a = 1;//printf("isLittleEndian: %d\r\n", c.b);//返回1则是小端,否则是大端
if(c.b)
{
mem = (a & 0x000000FFU) << 24 | (a & 0x0000FF00U) << 8 |
( a & 0x00FF0000U) >> 8 | (a & 0xFF000000U) >> 24;
}
else
{
mem=a;
}
}