前文以 C 結構體與函數指標模擬 C++ 類機制,本文分析此結構對程式效能的影響,測試環境為 Release 版本。
測試:循環調用函數 vs 循環執行函數體內部代碼。結果:當函數極簡單且調用次數極大(千萬級)時,函數調用開銷明顯。對非即時系統(UI 等),即使較慢 CPU,百萬次調用耗時僅毫秒級,通常可忽略。高頻簡單功能可用 inline 或巨集優化。
測試發現兩者時間差異極小。早期測試中函數指標較慢,後發現因全域變數存取較區域變數慢所致。修正後差異可忽略。
透過結構體存取函數指標 (struct { void (*tf)(); }) 與直接存取函數指標效能無差異。結構體存取為固定偏移量,機器碼層面與普通變數相同。