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

2020-01-04 19:01发布

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

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

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

网上找了好久,没找到相关资料
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
37条回答
xivisi
1楼-- · 2020-01-05 14:57
*p 见过吗?
(u16 *)p 见过吗?
*((u16 *)p)见过吗?
*(u16 *)p 该知道了吧
catx
2楼-- · 2020-01-05 15:29
关于表情
*(^_^*)和(*^_^)*
Crazy_Rain
3楼-- · 2020-01-05 16:38
 精彩回答 2  元偷偷看……
lindabell
4楼-- · 2020-01-05 20:07
其实是将一个数值转换为u16的指针,然后就是对指针指向的地址赋值
Crazy_Rain
5楼-- · 2020-01-05 22:37
回复【11楼】lindabell  欧海
-----------------------------------------------------------------------

非常感谢!


回复【13楼】myqiang1990  小松鼠
回复【11楼】lindabell 欧海
-----------------------------------------------------------------------
就这个、、、楼主c语言不过关啊。。。

-----------------------------------------------------------------------
这个秘密又被你发现了
myqiang1990
6楼-- · 2020-01-06 02:42
回复【14楼】Crazy Rain
-----------------------------------------------------------------------

举一个浅的例子吧...
u16 a;
u16 *ptr=&a;//这句话就是(u16 *) (Bank1_SRAM3_ADDR + WriteAddr),那么&a的值就是(Bank1_SRAM3_ADDR + WriteAddr)把它付给ptr后,ptr就变成了(u16 *) (Bank1_SRAM3_ADDR + WriteAddr)...-------------(1)

那么我们怎么赋值给p所指向的地址啊?不可能是ptr=*pBuffer++; 是吗??你见过有这样用的吗?不是大错特错吗?
正确的应该是*ptr=*pBuffer++;你吧(1)替换进来不就是你那个句话吗?

一周热门 更多>