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