c++ - 在 C 中有效地解析 char 数组

标签 c++ c arrays embedded byte

我想高效地解析 char 数组。在 c 中执行此操作的正确方法是什么?我是 c 编程的新手。请指导我。

数据为 32 字节。第一个字节是版本,第二个和第三个字节是序列号等等,如下所示。

void parsepacket(u8_t data[]) {
    u8_t version = data[0];
    u16_t sequence_number = ?;
    u16_t error_status = ?;
    u8_t command_type = ?;
    u8_t attribute_count = ?;
    u8_t pay_load[25] = ?;
}

最佳答案

我认为这就是您要找的...

void parsepacket(const u8_t data[]) {  //same as u8_t*data
        u8_t version;
        u16_t sequence_number;
        u16_t error_status;
        u8_t command_type;
        u8_t attribute_count;
        u8_t pay_load[25];
        u8_t i =0;
        version = data[i];
        i++;
        sequence_number =(u16_t)(8<<data[i] + data[i+i]);
        i+=2;
        error_status = (u16_t)(8<<data[i] + data[i+i]);
        i+=2;
        attribute_count = data[i];
        i++;
        for(int j=0;j<25;j++)
          pay_load[j] = data[i++];
    }

关于c++ - 在 C 中有效地解析 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419273/

相关文章:

c++ - 运行时检查失败 #2 S C++

c - 过滤读数 PIC

c - 程序在奇怪的地方打印垃圾值 (C)

使用 execl 和 fork() 在 C 中创建 linux 环境

php - compact() 与 PHP 上的手动数组声明

c++ - i=(i+1)&3 比 i=(i+1)%4 快吗

c++ - 具有特殊字符的数字的正则表达式**仅**

java - JAVA数组不保存值

java - java随机字符

c++ - 将第一个值插入链表时尝试访问头部时出现段错误