打印
[技术问答]

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

[复制链接]
971|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiekou001|  楼主 | 2022-1-29 19:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uint32_t ReadMemCore(uint32_t address)
{
    __IO uint32_t val = 0;
    uint32_t *a = (uint32_t*) address;
    val = *a;

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

使用特权

评论回复
沙发
jiekou001|  楼主 | 2022-1-29 19:24 | 只看该作者
问题来了,是不是和
/* Memory Address */
#define MEM_ADDR(address)       *((volatile unsigned long *) (address))
这个操作等价,都是从地址读取一个数据的操作。

使用特权

评论回复
板凳
huangcunxiake| | 2022-1-29 20:23 | 只看该作者
看起来是同一个作用的操作,不过后面这个宏定义的看着很简洁。

使用特权

评论回复
地板
huangcunxiake| | 2022-1-29 20:24 | 只看该作者
你可以用这两个操作同一个地址看看是不是结果一样。

使用特权

评论回复
5
杨德金| | 2022-1-31 17:26 | 只看该作者
学习 学习

使用特权

评论回复
6
麻花油条| | 2022-2-8 16:36 | 只看该作者
学习学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

126

主题

1267

帖子

2

粉丝