请教大神,*(u16 *)中右边的*号是什么意思?

2020-01-04 19:01发布

在STM32  FSMC配置里看到这样一句

*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer++;

请问*(u16 *)中,u16后面的*号是什么意思?

网上找了好久,没找到相关资料
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
38条回答
byrin219
2020-01-08 12:25
*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer++;

Bank1_SRAM3_ADDR + WriteAddr 单片机只能识别为一个十六进制数值,具体是数据还是地址,它并不能自动区分.

(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 对此数据进行强制转换,表明此数值为一个无符号的短整型地址指针值.

*(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 则是获取指针所指向地址处的内容.

楼主这句话的意思是将指针变量pBuffer所指向的数值送至 *(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) 地址处,然后自增 1.

一周热门 更多>