int download_addr;
void abc(void)
{
download_addr = 0x0c400000;
void (*fun)(void);
fun = (void (*)(void))download_addr;
(*fun)();
}
解释:
download_addr 是一个函数指针
void (*fun)(void); 定义一个函数指针func 输入参数为void返回类型为void
fun = (void (*)(void))download_addr;
这句话是将download_addr这个函数指针强制转换为参数为void返回类型为void的函数指针,然后赋值给func
最后一句就是要执行这个函数