出自《C 陷阱與缺陷》,描述電腦開機後硬體從位址 0 讀取啟動向量並跳轉執行的情境。
fp 是函數指標,*fp 解參考得函數,(*fp)() 呼叫之。(*0)(),但 * 運算元必須是指標型別。(void (*)())0 ——「指向無參無回傳函數的指標,值為 0」。(*(void (*())())0)()。typedef void (*func_ptr)(); // 定義函數指標型別
(*(func_ptr)0)(); // 使用型別別名轉型並呼叫
void (*const vector_table[])(void) = { Reset_Handler, ... };,編譯器自動配置區段屬性。__attribute__((section(".vectors"))) 定位。理解此技巧有助於閱讀底層啟動代碼、編寫裝置驅動向量表、除錯硬體異常入口。