簡體   English   中英

C錯誤:左值作為一元'&'操作數

[英]C error: lvalue required as unary '&' operand

我有代碼錯誤但不確定我的轉換和引用有什么問題。

BOOL xMBPortSerialPutByte( CHAR ucByte )
{
    CDC_Send_DATA(&((unsigned char)ucByte), 1);   // code error here
    xMBPortEventPost(EV_FRAME_SENT);
    return TRUE;
}

CDC_Send_DATA定義如下:

uint32_t CDC_Send_DATA (uint8_t *ptrBuffer, uint8_t Send_length);

這是錯誤消息:

  port/portserial.c:139:19: error: lvalue required as unary '&' operand

希望有人能提供幫助。 謝謝!

轉換操作會導致轉換,從而產生右值。 右值沒有地址,所以你不能用一元&來操作它。 你需要采取的地址,然后投認為

CDC_Send_DATA((unsigned char *)&ucByte, 1);

但最重要的是,你應該匹配強制轉換中的參數類型:

CDC_Send_DATA((uint8_t *)&ucByte, 1);

檢查返回值也可能是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM