|
最近寫一個純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位平臺準備的,雖然不會造成問題,但是以后也需要注意這樣的問題,代碼要嚴謹
|
|