声明十六进制字符';错误:多字符字符常量';在c中
在下面的函数中,我从UART读取两字节十六进制字符。我试图检测数据的开头,它是十六进制字符声明十六进制字符';错误:多字符字符常量';在c中,c,hex,uart,C,Hex,Uart,在下面的函数中,我从UART读取两字节十六进制字符。我试图检测数据的开头,它是十六进制字符FF。编译器正在给出错误错误:多字符字符常量。我应该如何声明FF void getData(void) { int i; static uint8_t detectedStartChar = 0; int buffans[264]; int retchar; for (i = 0; i < 264; i++) { retchar = getc
FF
。编译器正在给出错误错误:多字符字符常量。我应该如何声明FF
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;
}
}
}
void获取数据(void){
int i;
静态uint8\u t检测到的STARTCHAR=0;
int buffans[264];
int-retchar;
对于(i=0;i<264;i++){
retchar=getch(UART_0);
如果(retchar='DD'){
检测到的StartChar=1;
buffans[i]=retchar;
}
}
}
如注释中所述,修复程序包括:-
if (retchar == 0xff ){ /* compare the value */
if (retchar == '\xff' ){ /* compare the character representation */
引号用于单个字符。0x代表十六进制表示法中的文字。将retchar=='FF'
更改为retchar==0xff
@MargaretBloom和@nsilent22,谢谢,我还得到了错误error:variable'buffans'集,但未使用
但它在if循环中使用?您正在设置此变量,但以后不会在任何地方使用它。那么编译器会问你为什么要这样做?@nsilent22但是我在if循环中使用它,我在数组中放入retchar
?这不对吗?