言語の関数ポインタcの応用

言語の関数ポインタ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を返します。
}

  

 

おすすめ

転載: www.cnblogs.com/grglym/p/11493891.html