踩過的一個坑

項目須要,寫一個服務端測試程序,用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「後正常。恍然之間好像明白了點啥.....總之,之後只對無符號整數作移位運算~!!測試

相關文章
相關標籤/搜索