交流定义宏有意义吗?

iFrankz

我是C开发的新手。我正在尝试了解与Midi应用程序相关的代码片段:

#define GETCMD(p) ((p.data.midi.h& 0x70)>>4)
#define GETCH(p) ((p.data.midi.h& 0x0F)+1)

我假设上面是2个宏。尚不清楚的是十六进制值0x70和0x0F。根据我的理解,第一行的h指针右移4吗?

以下是没有道理的

#define SETCMD_CH(p, c1, c2) p.data.midi.h=0x80|(c2-1)|((c1&7)<<4)

能否请任何人让我理解这三个定义?

提前致谢

保罗·R

GETCMD 从3..6位中提取3个命令位,并将它们作为0..7范围内的值返回。

GETCH 返回4个通道位(从位0..3开始),并以1..16范围内的值返回。

SETCMD_CH 设置上面的命令和通道位,即只是上面两个宏组合的反向操作。

这种按位运算只是获取/设置中的适当位所需的移位和掩码p.data.midi.h如果您不清楚这些操作的工作方式,则可能需要阅读按位操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PyGTK仍然有意义吗?

来自分类Dev

PyGTK仍然有意义吗?

来自分类Dev

base()的用法有意义吗?

来自分类Dev

属性的属性有意义吗?

来自分类Dev

是吗 超级/扩展byte []有意义吗?

来自分类Dev

使用R进行回归的randomForest有意义吗?

来自分类Dev

缩小和缩小都有意义吗?

来自分类Dev

Abs(无符号长整数)有意义吗?

来自分类Dev

单例模式对套接字有意义吗?

来自分类Dev

使IO成为MonadCont的实例有意义吗?

来自分类Dev

REM在边界半径上有意义吗?

来自分类Dev

阻止全局迭代器有意义吗?

来自分类Dev

static final String =“ something”-静态有意义吗?

来自分类Dev

python中的`def main(args):`有意义吗?

来自分类Dev

测试猫鼬模型有意义吗?

来自分类Dev

catch(...)总是有意义吗?

来自分类Dev

HTML元素上的rem单位有意义吗?

来自分类Dev

混合正则化符有意义吗?

来自分类Dev

Little Man Computer仍然有意义吗?

来自分类Dev

将btrfs放在lvm上有意义吗?

来自分类Dev

使IO成为MonadCont的实例有意义吗?

来自分类Dev

对ConcurrentDictionary进行排序有意义吗?

来自分类Dev

单例模式对Socket有意义吗?

来自分类Dev

static final String =“ something”-静态有意义吗?

来自分类Dev

这种家庭网络配置有意义吗?

来自分类Dev

条件中的多余括号有意义吗?

来自分类Dev

这是没有意义的检查吗?

来自分类Dev

函数重载没有意义吗?

来自分类Dev

内联这个函数,有意义吗?