在开发28181程序的时候遇到一个问题,同一版程序编译到arm设备上可以向平台注册,编译到x86电脑上向平台注册失败。
经过排查,发现在md5校验的时候用到一个数据结构,将typedef unsigned long int UINT4改为typedef unsigned int UINT4后注册成功。
原因是arm设备是32位系统,x86是64位,导致校验不通过。
16 位平台 | 32 位平台 | 64位平台 | |
char | 1 个字节 | 1 个字节 | 1 个字节 |
short | 2 个字节 | 2 个字节 | 2 个字节 |
int | 2 个字节 | 4 个字节 | 4 个字节 |
long | 4 个字节 | 4 个字节 | 8 个字节 |
long long | 8 个字节 | 8 个字节 | |
指针 | 2 个字节 | 4 个字节 | 8个字节 |