回答編集履歴

2

footnote

2019/03/12 01:57

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- {#3}部は関数ポインタ型`void(*)()`、つまり「“引数をとらずvoid型を返す関数”へのポインタ型」です。(※注1)
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

2019/03/12 01:57

投稿

yohhoy
yohhoy

スコア6191

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(*)()`は任意個の実引数を取りうる関数ポインタ型です。この回答では本質的でないため、簡単に「引数なし」と説明しています。