
Also known as subroutine pointer, procedure pointer
pointer that points to a function
関数へのポインタ (英: pointer to function) あるいは関数ポインタ (英: function pointer) は、C言語, C++, D言語やその他多くのプログラミング言語におけるポインタの一種である。関数へのポインタを (dereference) すれば、そのポインタが指し示す関数(サブルーチン)を呼び出せる。応用例としては、switch文を置き換えるテーブルジャンプを実装する、コールバック関数によるカスタマイズポイントを提供する、などといったものがある。 関数オブジェクト (英: function object) は、関数へのポインタに似ているが、コード領域中のエントリポイントを指す単なるポインタである関数へのポインタと違い、データ領域上に実体を持つオブジェクトであるという点が異なっている(実装の詳細は言語や処理系により異なるが)。そのため、関数オブジェクトはデータを保持でき、クロージャを再現することもできる。ゆえに、関数オブジェクトは、「関数へのポインタ」ではなく「関数」という型と値を持つようなものと言え、より強力である。 C#やVisual Basic .NETなどといった.NET Framework用の言語には、メソッドを参照する型として、デリゲートがある。P/Invokeなどの.NET相互運用において、デリゲートは関数へのポインタにマーシャリングされる。 Javaはバージョン8でメソッド参照を導入し、関数ポインタやデリゲート類似の機能を利用できるようになったが、バージョン7まではメソッド参照を持たず、代替としてメソッドを1つだけ持つインタフェースを利用して同等機能を実現する必要がある。 第一級オブジェクトとして関数を使用できる(第一級関数がある)言語では、関数も引数で渡したり、戻り値で返したり、他の関数から動的に作成したりできるなどデータ同様に扱えるため、関数へのポインタは必要とされない。
Abstract from DBpedia / Wikipedia · CC BY-SA
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).
via Wikidata sitelinks · CC0