我是C++的初学者,我想破译一些代码:
#define lowByte(w) ((uint8_t) ((w) & 0xff))
#define highByte(w) ((uint8_t) ((w) >> 8))
它看起来像变量声明,但我从未见过这种语法。有人可以分解这两行并告诉我它们的意思吗?
最佳答案
这些是macros声明。
每当您的代码中包含lowByte(0x1234)
时,它将被宏的正确部分替换,用参数的值代替它们,即((uint8_t) ((0x1234) & 0xff))
。
在编译之前,此步骤由preprocessor执行。