繁体   English   中英

C中*((uint32_t *)&..)的含义

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM