我有这段代码,它将结构数组的所有成员向下移动一个索引,向零移动。
uint32_t dw_nodeSort(DW_nodelist* dw_nodelist, uint32_t node_index){
uint32_t i = node_index;
while((dw_nodelist->list[i].dev_status == DW_DEV_ACTIVE) && (i < NODELIST_LEN)){
memcpy(&dw_nodelist->list[i++], &dw_nodelist->list[++i], sizeof(DW_data));
}
return i;
}
编译器给我这个警告
dw1000_nodeMgmt.c:89:56:警告:'i'上的操作可能未定义 [-序列点] 89 | memcpy(&dw_nodelist-> list [i ++], &dw_nodelist->列表[++ i],sizeof(DW_data));
我尝试将i设置为0,但仍然收到相同的警告。我想知道这里是否有任何真正的风险,或者gcc只是在脚。我确实将-Wall设置为编译器选项。
编辑:
$ gcc --version
gcc(GCC)8.3.0