具有后/前增量器的潜在未定义整数,用作结构数组的索引定位器

时间:2019-05-14 03:41:09

标签: c post-increment pre-increment

我有这段代码,它将结构数组的所有成员向下移动一个索引,向零移动。

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

0 个答案:

没有答案