踩过的一个坑

项目须要,写一个服务端测试程序,用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“后正常。恍然之间好像明白了点啥.....总之,之后只对无符号整数作移位运算~!!测试

相关文章
相关标签/搜索