我想高效地解析 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/