言語の関数ポインタcの応用
1、関数ポインタと関数ポインタ
あなたは関数ポインタの使用を開始する前に、我々は、すなわち二つの概念を必要とする:関数ポインタと関数ポインタは明らか。
関数ポインタ、これを示す関数が、戻り値はポインタ型で、構文は次のとおりです。
*関数名の名前タイプA(パラメータリスト);
あなたは彼を呼び出すとき、私たちは使用することができます
変数名=名型関数名* A(パラメータリスト);
関数ポインタ、これはポインタであることを示すが、関数へのポインタ、構文は次のとおりです。
名前(関数名*楽しい)(パラメータリスト)を入力します。
あなたは彼を呼び出すとき、私たちは使用することができます
例えば、関数があります
関数名のB(パラメータリスト)の名前を入力します。
我々は使用することができます
最初の使用
楽しい=&B;
(*楽しい)(パラメータリスト);
第2の使用
楽しい= B;
(*楽しい)(パラメータリスト);
これらの2つのステートメントは、関数Bを呼び出すために このさらなる機能コードへのポインタを複数とビューが、大きなプログラムでは、関数Aと関数Bのパラメータの型、および戻り値の型が同じである場合ならば、クリーンなコードを書く、呼び出すためのポインタ関数funと一体化することができます。
図2に示すように、コード例
する#include <stdio.hの> INT(int型B、INT)を追加{ 返す+ B。 } (int型B INT)INTサブ{ ABを返します。 } のtypedef int型(*楽しい)(int型、int型のB)。 楽しいglobalFun [2] = { [0] =、追加 、[1] =サブ }。 INTのmain(){ int型第= 5。 第二= 10 int型。 printf( "%d個の\ n"、globalFun)[0](第一、第二)。 printf( "%d個の\ n"、globalFun)[1](第一、第二)。 0を返します。 }