スレッドメモ
MLやNewsのスレッドをメモする試み。
2009|05|
2003-11-22 (土)
◆ [fj][fj.comp.lang.c] typedefと関数ポインタ
<20031122173333.F99C.INGRAM@os.rim.or.jp> Hyu-ga Hiroya (11/22)
int (*fp)(int);
と記述すると
intを1つ引数にもち、intを返す関数のポインタ変数fpを
宣言することになりますが、typedef int (*fp)(int);
と記述すると、
intを1つ引数にもち、intを返す関数のポインタ型名「fp」
を作成することになります。このtypedefの使用例は構文例外なのでしょうか。決り文句だと考えていればいいとは思うのですが。
<YAS.03Nov24155804@kirk.is.tsukuba.ac.jp> Yasushi Shinjo (11/24)
はい。C言語を使っている人でも、なかなか気が付かない所ですよ ね。ひゅうがさんの記事をみて、ああそういうことだったのかと思っ た人もたくさんあると思います。私も typedef の話をする時には、 「まず変数宣言をするふりをして、頭に typedef を付けると型に なる」と説明しています。
<3989209news.pl@insigna.ie.u-ryukyu.ac.jp> Shinji KONO (11/25)
なんとなく、
> typedefの使い方としては、
> typedef 型名 新型名;
> というのがまず基本にあると思います。って考えたくなるけど、違うんだよね。
typedef 定義式ですよね。
<YAS.03Nov28041505@kirk.is.tsukuba.ac.jp> Yasushi Shinjo (11/28)
あと、cdecl というプログラムがあって、英語で説明してくれます。