编译原因:
使用void*指针进行算术运算。
因为指针运算需要知道指针步长,即指针指向的对象的大小
int* p;
char* c;
p+1
c+1
如上述运算,+1的结果是不一样的,对p+1会前进4个字节,对c+1只会前进1个字节。
警告解决方案:
在void*指针变量前加一个(uint8_t *),例如:
//command.payload是指向void的指针类型
//修改之前:
void* ptr = command.payload + command.len;
//修改之后:
void* ptr = (uint8_t *)command.payload + command.len;