包含vxWorks.h即可
/* 取双字节变量的高八位 */
#define MSB(x) (((x) >> 8) & 0xff) /* Most Significant Byte */
/* 取双字节变量的低八位 */
#define LSB(x) ((x) & 0xff) /* Least Significant Byte */
/* 取四字节变量的高十六位 */
#define MSW(x) (((x) >> 16) & 0xffff)/* Most Significant Word */
/* 取四字节变量的低十六位 */
#define LSW(x) ((x) & 0xffff) /* Least Significant Byte */
/* 取四字节变量的低八位 */
#define LLSB(x) ((x) & 0xff)
/* 取四字节变量的次低八位 */
#define LNLSB(x) (((x) >> 8) & 0xff)
/* 取四字节变量的次高八位 */
#define LNMSB(x) (((x) >> 16) & 0xff)
/* 取四字节变量的高八位 */
#define LMSB(x) (((x) >> 24) & 0xff)
/* 以双字节为单位逆序四字节变量 */
#define WORDSWAP(x) (MSW(x) | (LSW(x) << 16))
/* 以字节为单位逆序四字节变量 */
#define LONGSWAP(x) ((LLSB(x) << 24) | (LNLSB(x) << 16) | (LNMSB(x) << 8) | (LMSB(x)))
/* 结构体成员的偏移 */
#define OFFSET(structure, member) ((long)&(((structure *)0)->member))
/* 结构体成员的长度 */
#define MEMBER_SIZE(structure, member) (sizeof(((structure *)0)->member))
/* 数组的长度 */
#define NELEMENTS(array) (sizeof(array) / sizeof((array)[0]))
/* 最值 */
#define max(x, y) (((x) < (y)) ? (y) : (x))
#define min(x, y) (((x) < (y)) ? (x) : (y))
/* 向上对齐 */
#define ROUND_UP(x, align) (((long)(x) + ((long)align - 1)) & ~((long)align - 1))
/* 向下对齐 */
#define ROUND_DOWN(x, align) ((long)(x) & ~((long)align - 1))
/* 是否对齐 */
#define ALIGNED(x, align) (((long)(x) & ((long)align - 1)) == 0)