【问题标题】:Meaning of *((uint32_t*)&..) in CC 中 *((uint32_t*)&..) 的含义
【发布时间】:2016-02-19 09:55:15
【问题描述】:
LPC_CAN1->TDA1 = *(uint32_t *) &msg->data[0];    // Write first 4 data bytes 

请告诉我为什么使用这个 *(uint32_t ) 以及在 uint32_t 前后这个 "" 的用途是什么

【问题讨论】:

    标签: c keil uint32-t


    【解决方案1】:

    此代码的目标是将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 字节无符号整数)。

    希望这是有道理的。

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2017-06-13
      相关资源
      最近更新 更多