C言語でイベントドリブン(Event Driven)のプログラムを書 く際に便利。WindowsやXwindowなどのGUIのプログラムを書 く際にマウスやキーボードの入力といったイベントに応じて プログラムを選択するので、イベントドリブンのプログラム になる。
このようなプログラムの場合、イベント待ちループからの各種 のイベントに応じて呼ばれるプログラムの一つひとつは個別の関数で 記述される。ここで問題となるのは、この関数を呼び出す際に、イベ ント待ちループからどのように指定した関数を呼び出すのかといこで ある。イベント待ちループから呼び出される関数は、あるイベントに 関して一意でなく、いつも呼ばれる関数が変化することがある。
関数をfunction()とすると、関数へのポインタはfunctionと なる。この関数を呼ぶときは。
void *fp() = function; (*fp)();
関数へのポインタを利用すれば、プログラムの実行中でも動的 に関数を指定できる。