[問題] 陣列型態轉換
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
假設我有個陣列 uint8_t data[0]
data[1]
data[2]
data[3]
data[4]
data[5]
....
現在想要弄成 uint32_t sample1 =
{(data[0]<<24)|(data[1]<<16)|(data[2]<<8)| data[3] }
uint32_t sample2 =
{(data[1]<<24)|(data[2]<<16)|(data[3]<<8)| data[4] }
但是這樣寫自己都覺得太笨,有沒有辦法用指標+型態轉換的方式得到呢??
uint32_t *sample1, *sample2;
sample1 = (uint32_t*)data;
sample2 = (uint32_t*)(data+1);
以上編譯會有cast的錯誤,我覺得一定可以做到,只是不知道語法而已,
上來請教各位,感激不盡了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.116.141
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1446473265.A.E71.html
※ 編輯: kenchungQ (36.224.116.141), 11/02/2015 22:09:37
→
11/02 23:28, , 1F
11/02 23:28, 1F
→
11/02 23:47, , 2F
11/02 23:47, 2F
→
11/03 01:15, , 3F
11/03 01:15, 3F
→
11/03 01:16, , 4F
11/03 01:16, 4F
→
11/03 01:50, , 5F
11/03 01:50, 5F
→
11/03 18:03, , 6F
11/03 18:03, 6F