スレッドメモ

MLやNewsのスレッドをメモする試み。

2003|01|02|04|05|06|07|08|10|11|
2004|01|04|05|06|07|08|09|11|12|
2005|01|02|04|08|09|
2006|01|03|04|08|
2007|01|05|
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 というプログラムがあって、英語で説明してくれます。


2003|01|02|04|05|06|07|08|10|11|
2004|01|04|05|06|07|08|09|11|12|
2005|01|02|04|08|09|
2006|01|03|04|08|
2007|01|05|
2009|05|