C++のコールバック関数

1222 ワード

コールバック関数を理解する前に、関数ポインタを理解する必要があります.
  • 関数ポインタ:関数エントリアドレスを指すポインタを関数ポインタと呼びます(注意:関数ポインタは括弧で囲まなければなりません)、例えばvoid Invoke(char*c);

  •         void (*fp)(char* s);//関数ポインタ(fp)が宣言されました
            fp = Invoke;//Invoke関数のエントリアドレスをfpに割り当てる
            fp("Hellp world") ;//関数ポインタfpは関数呼び出しを実現する
    2.コールバック関数:1つの関数を自分で定義し、この関数を別の関数のパラメータとして、別の関数で実行時に呼び出す関数です.
    //        
    void PrintfText(char* s)

    {
       printf(s);
    }

    // " "
    void CallPrintfText(void (*callfuct)(char*),char* s)

    {
       callfuct(s);
    }

    // main
    int main(int argc,char* argv[])

    {
       CallPrintfText(PrintfText,"Hello World!
    ");

       return 0;
    }