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

2020-01-04 19:01发布

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

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

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

网上找了好久,没找到相关资料
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
38条回答
XL_J
2020-01-07 04:32
回复【18楼】xnliuxiwen
-----------------------------------------------------------------------
是的,函数名就是地址。C教材(谭浩强写的那本)上有说的,函数地址调用函数时,加不加前面那一个星号都可以,但是要注意函数指针和*、()的结合优先级,如(*pFun)()和*pFun()是不同的
void Test()
{
    ...
}

int main(void)
{
    void (*pFun)() = Test;

    (*pFun)();                  /* (*pFun)()和pFun()作用一样,都是实现Test()函数调用   */
     pFun();
}

一周热门 更多>