日前看到一行指令, 看不太懂, 還請各位大大指導
程式行 : ((uint8_t *)&result)[0] = f.read();
(uint8_t *) 是強制轉型嗎? &result 是指result 的位址嗎? ((uint8_t *)&result) 又代表什麼? 為何還有陣列[0]? 實在看不懂
完整函數如下
uint32_t read32(File f) {
uint32_t result;
((uint8_t *)&result)[0] = f.read(); // LSB
((uint8_t *)&result)[1] = f.read();
((uint8_t *)&result)[2] = f.read();
((uint8_t *)&result)[3] = f.read(); // MSB
return result;
}