|
最近写一个纯c的代码, 在vc下编译没有任何问题, 但是在gcc的MinGW下面编译结果提出如下警告:
modbus.c:861:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
modbus.c:861:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
仔细检查发现,是如下的语句有问题,
memcpy(data + index, (unsigned char *)response_data->point_references, number_of_register * 2);
因point_references定义的是unsigned short 类型,在win32平台指针是32位的,长度不够,但是该代码是为16位平台准备的,虽然不会造成问题,但是以后也需要注意这样的问题,代码要严谨
|
|