我是C++的初学者,我想破译一些代码:

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

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

最佳答案

这些是macros声明。

每当您的代码中包含lowByte(0x1234)时,它将被宏的正确部分替换,用参数的值代替它们,即((uint8_t) ((0x1234) & 0xff))

在编译之前,此步骤由preprocessor执行。

09-07 09:45