[软件设计/软件工程] 为什么我们不能取消引用常量整数?

[复制链接]
发表于 2022-5-4 15:14:41
问题
为了理解使用嵌入式系统时的指针,我试图理解访问内存映射寄存器的代码中发生了什么:

uint32_t regval = *(uint32_t *)0x40048004U;

在我看来,如果没有类型转换,这意味着 regval 现在等于地址的内存内容。我认为这应该足够了,但这还不够,但是当您对其进行类型转换时,您将其视为指向单个操作的指针,这似乎有点多余。

因此,您将 regval 视为指向 0x40048004U 内存内容的未知地址的内存内容?为什么需要类型转换?

回答
我知道你在问为什么我们不能这样做:

uint32_t register_value = *0x40048004U;

(例如,“为什么我们不能取消引用常量整数?”)。

有几个答案:

ü

大号

*0x40048004U

*(valueType*)0xDEADBEFF





上一篇:TypeError:分段使用 sympy 时无法确定关系的真值
下一篇:使用 pip 安装 pandas 时出错

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表