首頁  >  文章  >  後端開發  >  為什麼 C 語言中函數名稱用作函數指標?

為什麼 C 語言中函數名稱用作函數指標?

Linda Hamilton
Linda Hamilton原創
2024-11-11 02:29:03405瀏覽

Why are Function Names Used as Function Pointers in C?

函數名稱作為函數指標:設計原理

在C 中,使用函數名稱作為函數指標相當於應用位址函數名稱的運算符。這種行為可能看起來與語言的其他部分不一致,並引發了對其設計原則的質疑。

ANSI C90 原理文件提供了對此設計決策的見解:

  1. 便利: 它簡化了對較大結構一部分的函數的呼叫。例如,開發人員可以使用更簡潔的graphics.open(file),而不是寫(*graphics.open)(file)。
  2. 語法彈性:函數指示符和指標為呼叫函數提供了多種語法形式:
  1. 與指向陣列名稱的指標的一致性: 雖然語言禁止將&a 指派給int*,其中 a是一個數組,它允許對函數指示符和函數指標進行相同的操作。這種不對稱性被認為比禁止使用函數指示符作為指標的危害要小。

關於傳回上下文中缺乏從函數型別到指標型別的隱式轉換,解釋在於「傳回型別裝飾。」在 C 中,函數傳回型別是函式簽章的一部分,不能修改。因此,函數不能隱式地傳回指向自身的指標。

以上是為什麼 C 語言中函數名稱用作函數指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn