ARM中关于强制类型转换的困惑
在ARMcortex中,经常发现这样一种情况
#define DMA1_Channel1_BASE (AHBPERIPH_BASE+0X0008)//定义DMA通道1的地址
#define DMA1 ((DMA_Channel1_TypeDef*)DMA_Channel1_BASE)//把通道1的地址强制转化为结构体的指针
然后我要比较一个DMAy_Channelx存储的值与通道1的地址的值是否相等再进行操作
switch(*(u32*)&DMAy_Channelx)
{
case DMA_Channel1_BASE:
……………………
}
请问这个*(u32*)&DMAy_Channelx表示什么意思,为啥这样强制类型转换呢?
[解决办法]
为什么要这么费尽呢,直接这样不也可以么
switch((u32)DMAy_Channelx)