2016-02-21 53 views
-1

在下面的函數中,我從UART讀取兩個字節的十六進制字符。我試圖檢測數據的開始是十六進制字符FF。編譯器給出錯誤error: multi-character character constant。我應該如何聲明FF在c中聲明十六進制字符'錯誤:多字符字符常量'

void getData(void) { 
    int i; 
    static uint8_t detectedStartChar = 0; 
    int buffans[264]; 
    int retchar; 

    for (i = 0; i < 264; i++) { 
     retchar = getch(UART_0); 
     if (retchar == 'DD') { 
      detectedStartChar = 1; 
      buffans[i] = retchar; 
     } 
    } 
} 
+1

行情是一個單個字符。 * 0x *是以十六進制表示法的文字。 –

+2

將'retchar =='FF''更改爲'retchar == 0xff' – nsilent22

+0

@MargaretBloom和@ nsilent22,謝謝,我也收到錯誤'error:variable'buffans'set但未使用',但它用於if循環? – transcend

回答

1

正如意見中提到的解決方法是任意的: -

if (retchar == 0xff){ /* compare the value */ 

if (retchar == '\xff'){ /* compare the character representation */