需要帮助理解lowByte和highByte

时间:2015-06-30 21:03:17

标签: c++ byte uint8t

我是C ++的初学者,我想解读一些代码:

    #define lowByte(w) ((uint8_t) ((w) & 0xff))
    #define highByte(w) ((uint8_t) ((w) >> 8))

它看起来像变量声明,但我以前从未见过这种语法。有人可以打破这两行并告诉我他们的意思吗?

1 个答案:

答案 0 :(得分:2)

这些是macros声明。

每当你的代码中有lowByte(0x1234)时,它将被替换为宏的右边部分,用其值替换参数,即((uint8_t) ((0x1234) & 0xff))

此步骤由编译前的preprocessor执行。