c - 在c中声明十六进制字符 'error: multi-character character constant'

标签 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 = getch(UART_0);
        if (retchar == 'DD') {
            detectedStartChar = 1;
            buffans[i] = retchar;
        }
    }
}

最佳答案

正如评论中提到的,修复是:-

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

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

关于c - 在c中声明十六进制字符 'error: multi-character character constant',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35535657/

相关文章:

c++ - 涉及文字的比较安全吗?

C++ 不正确的算术结果

c++ - 字符数组到十六进制字符串 C++

c++ - Gem5 中的 UART 通信与 ARM 裸机

c - 如何在 DE2 上通过串口发送数据

c - 在 C 程序中访问字符串

c - 编写一个C程序,使用指针将一维数组转换为二维数组

c - 从 Linux 内核模块的用户空间打开文件

java - 字符串十六进制到十进制整数/将正数转换为负数

c - 未读取 uart 缓冲区