int download_addr;
void abc(void)
{
download_addr = 0x0c400000;
void (*fun)(void);
fun = (void (*)(void))download_addr;
(*fun)();
}
解釋:
download_addr 是一個函數(shù)指針
void (*fun)(void); 定義一個函數(shù)指針func 輸入?yún)?shù)為void返回類型為void
fun = (void (*)(void))download_addr;
這句話是將download_addr這個函數(shù)指針強(qiáng)制轉(zhuǎn)換為參數(shù)為void返回類型為void的函數(shù)指針,然后賦值給func
最后一句就是要執(zhí)行這個函數(shù)
void abc(void)
{
download_addr = 0x0c400000;
void (*fun)(void);
fun = (void (*)(void))download_addr;
(*fun)();
}
解釋:
download_addr 是一個函數(shù)指針
void (*fun)(void); 定義一個函數(shù)指針func 輸入?yún)?shù)為void返回類型為void
fun = (void (*)(void))download_addr;
這句話是將download_addr這個函數(shù)指針強(qiáng)制轉(zhuǎn)換為參數(shù)為void返回類型為void的函數(shù)指針,然后賦值給func
最后一句就是要執(zhí)行這個函數(shù)