前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VxWorks定义的几个宏

VxWorks定义的几个宏

作者头像
Taishan3721
发布2022-12-05 15:49:30
8870
发布2022-12-05 15:49:30
举报
文章被收录于专栏:这里只有VxWorks

包含vxWorks.h即可

代码语言:javascript
复制
/* 取双字节变量的高八位 */
#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)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档