📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == ポインタの参照先を関数にすると、そのポインタが指し示す関数を呼び出すことができる。<br> ポインタに格納する…」
 
文字列「</source>」を「</syntaxhighlight>」に置換
 
(同じ利用者による、間の4版が非表示)
11行目: 11行目:
型 (*変数名)(仮引数)<br>
型 (*変数名)(仮引数)<br>
<br>
<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  #include <stdio.h>
  #include <stdio.h>
   
   
42行目: 42行目:
     return (x - y);
     return (x - y);
  }
  }
  </source>
  </syntaxhighlight>
1度目の関数呼び出し時は、pFuncに関数additionのアドレスが格納されており、<br>
1度目の関数呼び出し時は、pFuncに関数additionのアドレスが格納されており、<br>
2度目の関数呼び出し時は、関数subtractionのアドレスが格納される。<br>
2度目の関数呼び出し時は、関数subtractionのアドレスが格納される。<br>
49行目: 49行目:
関数ポインタの仮引数は、仮引数の型だけを入れて宣言すればよい。<br>
関数ポインタの仮引数は、仮引数の型だけを入れて宣言すればよい。<br>
<br>
<br>
ちなみに、以下のように宣言して配列として使うこともできます。<br>
ちなみに、以下のように宣言して配列として使うこともできる。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  int main(int argc, char *argv[])
  int main(int argc, char *argv[])
  {
  {
64行目: 64行目:
     return 0;
     return 0;
  }
  }
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


== コールバック関数を使用する ==
== コールバック関数を使用する ==
下記のように、コールバック関数として使用することができる。<br>
下記のように、コールバック関数として使用することができる。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  #include<stdio.h>
  #include<stdio.h>
   
   
107行目: 107行目:
     pFunc(s);
     pFunc(s);
  }
  }
  </source>
  </syntaxhighlight>
<br><br>
 
== typedefを使用する(C++11以降) ==
C++11以降の場合、typedefを使用することを推奨する。<br>
<syntaxhighlight lang="c++">
// C++98, C++03の記述
typedef void (*pfunc)(int, char);
// C++11以降の記述
using pfunc = void (*)(int, char);
</syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:C]]
[[カテゴリ:C]]