回答編集履歴
2
footnote
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
{#3}部は関数ポインタ型`void(*)()`、つまり「“引数をとらずvoid型を返す関数”へのポインタ型」です。
|
13
|
+
{#3}部は関数ポインタ型`void(*)()`、つまり「“引数をとらずvoid型を返す関数”へのポインタ型」です。※注1
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
関数ポインタ型に対する参照はがし(`*`)は明示不要ですから、下記のようにも書けます。
|
31
|
+
関数ポインタ型に対する参照はがし(`*`)は明示不要ですから、下記のようにも書けます。※注2
|
32
32
|
|
33
33
|
|
34
34
|
|
@@ -44,4 +44,8 @@
|
|
44
44
|
|
45
45
|
----
|
46
46
|
|
47
|
-
※注1: C言語仕様に厳格に従うと、`void(*)(void)`表記がより望ましいです。`void(*)()`は任意個の実引数を取りうる関数ポインタ型です。この回答では本質
|
47
|
+
※注1: C言語仕様に厳格に従うと、`void(*)(void)`表記がより望ましいです。`void(*)()`は任意個の実引数を取りうる関数ポインタ型です。この回答では本質ではないため、簡単に「引数なし」と説明しています。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
※注2: C言語仕様に厳格に従うと、関数呼び出しは **常に** 関数ポインタ型を経由します。つまり、普通の関数呼び出しにおいて「関数名から関数ポインタ型への変換」が暗黙に行われています。プログラマがこの型変換を意識することはないでしょう。
|
1
footnote
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
{#3}部は関数ポインタ型`void(*)()`、つまり「“引数をとらずvoid型を返す関数”へのポインタ型」です。
|
13
|
+
{#3}部は関数ポインタ型`void(*)()`、つまり「“引数をとらずvoid型を返す関数”へのポインタ型」です。(※注1)
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -39,3 +39,9 @@
|
|
39
39
|
((FuncType) hoge)();
|
40
40
|
|
41
41
|
```
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
----
|
46
|
+
|
47
|
+
※注1: C言語仕様に厳格に従うと、`void(*)(void)`表記がより望ましいです。`void(*)()`は任意個の実引数を取りうる関数ポインタ型です。この回答では本質的でないため、簡単に「引数なし」と説明しています。
|