2010-01-18 85 views
0

正常函數和函數指針之間有什麼區別。 我知道的一種情況是,如果您在軟件堆棧中使用了一個庫,其中 只給出函數指針,那麼您可以填寫稍後使用 的指針。函數指針和正常函數

+0

我假設這個問題與C語言有關? – hlovdal 2010-01-21 13:46:22

+0

是的,它適用於C lang – Sikandar 2010-01-22 06:17:03

回答

1

函數指針只是指向普通函數的指針。它可以像任何其他指針一樣傳遞,並可以在創建位置以外的地方調用。

+0

你是否認同你可能認爲的其他任何差異? – Sikandar 2010-01-18 13:01:43

2

通過函數指針調用函數意味着調用不能被內聯;在某些情況下,這可能會導致相當的性能損失。 (例如,C的qsort()經歷一個函數指針爲每個比較,對C++的sort()能夠內聯進行比較)。

聲明一個函數指針需要沒有作爲通常用作其他部件的非平凡的語法的語言,導致在閱讀資料來源時,大多數人會產生「心理速度障礙」。它通常是由於這個原因而定義的。