C言語の関数ポインタ
auです。
今回は関数ポインタについて調べました。
関数ポインタとは
関数ポインタとは、関数アドレスを格納するためのポインタ変数のことです。
変数ポインタは以前触れました。それの関数バージョンです。
関数ポインタを宣言する
戻り値の型 (*関数ポインタ名)(引数の型1, 引数の型2...);
このように宣言します。
関数ポインタとアドレスを繋げる関数は、型が一緒でなければなりません。
関数ポインタの名前は任意の名前で大丈夫です。
aとbの足し算をするプログラムを関数ポインタを用いて記述します。
#include <stdio.h> int add(int a, int b) { // int型の関数名addで引数はintが2つ return a + b; } int main(void) { int a = 5; int b = 8; int (*p)(int, int); // int型の関数ポインタ名pで引数はintが2つ p = &add; //ポインタに関数名addのアドレスを格納 printf("%d\n", (*p)(a, b)); // 出力する際の引数にintはいらない return 0; } // 実行結果 13