[英]Meaning of *((uint32_t*)&..) in C
LPC_CAN1->TDA1 = *(uint32_t *) &msg->data[0]; // Write first 4 data bytes
請告訴我為什么使用*(uint32_t ) ,以及在uint32_t之前和之后使用此“ ” 的目的是什么
該代碼的目標是將msg->data[0]
出現的前4個字節復制到LPC_CAN1->TDA1
。
&msg->data[0]
給出&msg->data[0]
的地址。
(uint32_t *) &msg->data[0]
將該地址強制轉換為指向32位無符號整數的地址。
*(uint32_t *) &msg->data[0]
從地址中讀取uint32_t值(4字節無符號整數)。
希望有道理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.