用c语言编写的音频播放程序中的问题,注意这个是嵌入式程序

我得到一个用c语言编写的音频播放程序,但其中有两段代码看不懂,请各位大神帮帮忙,程序如下
#define mru_swap_16(x) \
((unsigned short)( \
(((unsigned short)(x) & (unsigned short)0x00ffU) << 8) | \
(((unsigned short)(x) & (unsigned short)0xff00U) >> 8) ))

#define mru_swap_32(x) \
((unsigned long)( \
(((unsigned long)(x) & (unsigned long)0x000000ffUL) << 24) | \
(((unsigned long)(x) & (unsigned long)0x0000ff00UL) << 8) | \
(((unsigned long)(x) & (unsigned long)0x00ff0000UL) >> 8) | \
(((unsigned long)(x) & (unsigned long)0xff000000UL) >> 24) ))
这个是嵌入式程序