我正在处理this代码。
并在此功能
void rfmRead()
{
static const uint8_t recvLenMax = 5;
static uint8_t recvLen = recvLenMax;
static uint8_t recvBuf[recvLenMax];
if (rfm23.recv(recvBuf, (uint8_t*)&recvLen))
{
rfmSend();
// Serial.println((char*)recvBuf);
}
}
我不明白是什么
(uint8_t*)&recvLen)
意味着还是工作?
答案 0 :(得分:0)
您正在传递recv
变量recvLen
作为参考。
要将变量作为引用传递,您需要向函数传递一个指向变量的指针(即&
是:一个提取变量地址的运算符)。
(uint8_t*)
部分是演员:您正在将某种变量转换为另一种变量。在这种情况下,由于recvLen
本身是uint8_t
(因此&recvLen
已经指向uint8_t
),因此它是无用的,但如果recvLen
是另一个你需要它的一种变量(例如signed char
或int
),因为函数期望这种变量。