(uint8_t *)& recvLen)是什么意思?

时间:2015-10-28 06:26:49

标签: arduino

我正在处理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) 

意味着还是工作?

1 个答案:

答案 0 :(得分:0)

您正在传递recv变量recvLen作为参考。

要将变量作为引用传递,您需要向函数传递一个指向变量的指针(即&是:一个提取变量地址的运算符)。

(uint8_t*)部分是演员:您正在将某种变量转换为另一种变量。在这种情况下,由于recvLen本身是uint8_t(因此&recvLen已经指向uint8_t),因此它是无用的,但如果recvLen是另一个你需要它的一种变量(例如signed charint),因为函数期望这种变量。