嵌入式学习小组
直播中

李勇俊

7年用户 1510经验值
私信 关注

求助,问一个指针强制转换读取数据的操作

uint32_t ReadMemCore(uint32_t address)
{
    __IO uint32_t val = 0;
    uint32_t *a = (uint32_t*) address;
    val = *a;

    return val;
}

看官方的例子中有这个操作,是把地址那个变量转换成内存地址,然后通过*取地址指向变量吗?

回帖(1)

dplion5

2024-1-9 15:05:31
是的,这个函数中的指针强制转换操作是将传入的地址参数转换为一个指向uint32_t类型的指针,然后通过这个指针获取对应内存地址上的值,将其赋值给val变量,最后返回val的值。具体来说,操作*a是对指针进行间接寻址操作,即通过指针所指向的内存地址获取该地址上保存的数据。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分