C++指针问题
答案:2 悬赏:60
解决时间 2021-04-18 08:34
- 提问者网友:低唤何为爱
- 2021-04-17 11:12
#define AT91C_ROM_BOOT_ADDRESS ((const AT91S_RomBoot *) ( *((unsigned int *) (AT91C_IROM + 0x20))) ) 其中AT91S_RomBoot 为结构体,AT91C_IROM 为0x100000,请问这句话的意思,能一步一步的解释最好,谢谢
最佳答案
- 二级知识专家网友:陪衬角色
- 2021-04-17 12:20
首先AT91C_IROM 为0x100000这应该是一个地址
AT91C_IROM + 0x20还是一个地址
*((unsigned int *) (AT91C_IROM + 0x20))取那个地址里的值
((const AT91S_RomBoot *) ( *((unsigned int *) (AT91C_IROM + 0x20))) )
这个地址里的值估计是一个AT91S_RomBoot 结构体指针,所以进行强制类型转换
全部回答
- 1楼网友:飘零作归宿
- 2021-04-17 12:45
把AT91C_ROM_BOOT_ADDRESS 用宏定义的方式定义成了AT91C_IROM +0x20,不过把这个地址给强制类型转换了((const AT91S_RomBoot *) ( *((unsigned int *)应该是强制类型转换。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯