我继承了一些难以理解且编写不佳的PIC代码以进行修改。这里有两个宏:
#define TopByteInt(v) (*(((unsigned char *)(&v)+1)))
#define BottomByteInt(v) (*((unsigned char *)(&v)))
有谁能够解释他们到底在做什么,这意味着什么?
谢谢 :)
(*((unsigned char *)(&v)))
它将v(16位整数)转换为char(8位),这样做只会得到最低字节。
(*(((unsigned char *)(&v)+1)))
这是相同的,但是它获取v的地址并求和1个字节,因此它仅获取最高字节。
如果v是16位整数,则只能按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句