細 Wiki がページ「関数ポインタ」を「C言語の基礎 - 関数ポインタ」に、リダイレクトを残さずに移動しました |
細 文字列「</source>」を「</syntaxhighlight>」に置換 |
||
| (同じ利用者による、間の1版が非表示) | |||
| 11行目: | 11行目: | ||
型 (*変数名)(仮引数)<br> | 型 (*変数名)(仮引数)<br> | ||
<br> | <br> | ||
< | <syntaxhighlight lang="c++"> | ||
#include <stdio.h> | #include <stdio.h> | ||
| 42行目: | 42行目: | ||
return (x - y); | return (x - y); | ||
} | } | ||
</ | </syntaxhighlight> | ||
1度目の関数呼び出し時は、pFuncに関数additionのアドレスが格納されており、<br> | 1度目の関数呼び出し時は、pFuncに関数additionのアドレスが格納されており、<br> | ||
2度目の関数呼び出し時は、関数subtractionのアドレスが格納される。<br> | 2度目の関数呼び出し時は、関数subtractionのアドレスが格納される。<br> | ||
| 50行目: | 50行目: | ||
<br> | <br> | ||
ちなみに、以下のように宣言して配列として使うこともできる。<br> | ちなみに、以下のように宣言して配列として使うこともできる。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
{ | { | ||
| 64行目: | 64行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
== コールバック関数を使用する == | == コールバック関数を使用する == | ||
下記のように、コールバック関数として使用することができる。<br> | 下記のように、コールバック関数として使用することができる。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
#include<stdio.h> | #include<stdio.h> | ||
| 107行目: | 107行目: | ||
pFunc(s); | pFunc(s); | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
== typedefを使用する(C++11以降) == | == typedefを使用する(C++11以降) == | ||
C++11以降の場合、typedefを使用することを推奨する。<br> | C++11以降の場合、typedefを使用することを推奨する。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
// C++98, C++03の記述 | // C++98, C++03の記述 | ||
typedef void (*pfunc)(int, char); | typedef void (*pfunc)(int, char); | ||
| 118行目: | 118行目: | ||
// C++11以降の記述 | // C++11以降の記述 | ||
using pfunc = void (*)(int, char); | using pfunc = void (*)(int, char); | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C]] | [[カテゴリ:C]] | ||