たまに聴く謎の言葉「関数ポインタ」について調べてみました。
関数ポインタ
関数を開始するアドレス(エントリポイント)を入れるための変数
次のように定義。
下記の例だと (*ptn) が関数ポインタ
hoge.cpp
int MyFunc(int a, int b){
return a+b;
}
int main(){
//戻り値の型 関数ポインタ Myfuncの引数の型
int (*ptn)(int,int) = MyFunc;
// 関数ポインタを使って関数を実行も可能
cout << ptn(10,10) << endl
}
コールバック関数
関数の引数に指定することで呼び出される関数。この例ではMyFunc関数
hoge.cpp
int MyFunc(int a, int b){
return a+b;
}
int OutPutFunc(int (*ptn)(int,int)){
cout << ptn(10,10);
}
int main(){
OutPutFunc(MyFunc);
return 0;
}