项目须要,写一个服务端测试程序,用C语言,想将4字节整数还原出来,错误代码以下:函数
void ParseData(char * data) { unsigned int chip_ID = 0; unsigned int year = 0, mon = 0, date = 0, hour = 0, min = 0, sec = 0; unsigned short netAddr = 0; char info[256] = {0}; char path[50] = {0}; chip_ID = (unsigned int)(*(data) & 0x000000FF); chip_ID += (unsigned int)(*(data + 1) << 8); chip_ID += (unsigned int)(*(data + 2) << 16); chip_ID += (unsigned int)(*(data + 3) << 24); ...... }
反复折腾良久以后才发现,将函数参数 改成“unsigned char * data“后正常。恍然之间好像明白了点啥.....总之,之后只对无符号整数作移位运算~!!测试