【C言語】
関数ポインタをtypedefを使って簡単に書く方法

関数ポインタの基本的な使い方

■関数ポインタの型定義

typedef long(*fptr_t)(int a,short b);

関数ポインタの型 fptr_t を
typedefで定義します。

このコードは次の関数へのポインタ型を定義しています。
戻り値はlong型
第一引数はint型
第二引数はshort型

■関数ポインタの宣言

 fptr_t  fp = NULL ;

先に定義した関数ポインタの型fptr_t を使って関数ポインタ fp を宣言します。

関数ポインタ使用例

#include    <stdio.h>
long max(int a,short b){
    return  a > b ? a : b ;
}
long min(int a,short b){
    return  a < b ? a : b ;
}
int main(void){
    //関数ポインタの型 fptr_t をtypedefで定義する
    typedef long(*fptr_t)(int a,short b);   
    
    //関数ポインタ fp の宣言
    fptr_t  fp = NULL ;
    
    //関数アドレスの設定
    fp = max ;
    printf("max = %ld\n",fp(123,456));
    fp = min ;
    printf("min = %ld\n",fp(123,456));
}

関数ポインタ fp に
max関数と,
min関数のアドレスを設定して
それぞれ呼び出しています。

➡実行結果

./a.out
max = 456
min = 123

関数ポインタを使って
max関数とmin関数が呼び出されています。

参考:

EXP16-C. 関数ポインタを定数値と比較しない