【发布时间】:2016-02-10 03:06:02
【问题描述】:
我在阅读code of the bitcoin trezor MCU 时发现了这个:
(*(void (**)())(FLASH_APP_START + 4))();
通过分解一些东西,我试图分析这条线的含义:
( *(void (**)())(FLASH_APP_START + 4) ) ();
我可以看到这是一个没有参数的函数调用,因为末尾有(),并且函数是任意的
*(void (**)())(FLASH_APP_START + 4)
指向。
我知道FLASH_APP_START + 4 会解析成什么东西,所以我只需要弄清楚这是什么:
*(void (**)())
它正在解析void (**)() 指向的任何内容。但是void (**)() 是什么?也许它看起来像是一个函数的转换。但我不确定。你能给我举个例子来说明这个呼召是什么吗?你为什么需要那个?
【问题讨论】: