static unsigned int read24(unsigned char *ptr)
{
unsigned int b0;
unsigned int b1;
unsigned int b2;
unsigned int b3;
b0 = *ptr++;
b1 = *ptr++;
b2 = *ptr++;
b3 = *ptr;
return (((b0 >> 24) & 0x000000ff) |
((b1 >> 8) & 0x0000ff00) |
((b2 << 8) & 0x00ff0000) |
(b3 << 24) & 0x00000000 // this byte is not important so make it zero
);
}
在這裏,我寫了一個功能,我試圖用字符指針讀取32位(4字節),並返回的32位(4字節)。我有個疑問如果這將正常工作。另外,我是通過定義4個不同的整數變量來使用/浪費太多的內存嗎?有沒有更好的方法來編寫這個函數。感謝您的時間。使用字符指針讀取一個int值,並將其返回
我認爲它會返回'1'或者'0'。 – Himanshu 2015-04-03 05:34:26
'read24'與「* ...試圖讀取32位*」:請解釋。 – alk 2015-04-03 09:21:44
我讀了4個字節......但我讓最後一個字節爲零,因爲它對我來說不是那麼重要.....最後我返回返回4byte值......這實際上就像0x 00xxxxxx ...因此read24 – 2015-04-03 10:02:45