[英]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.