Entry

プログラミングメモ - 「typedef で関数プロトタイプに型付けする」のは常識

2008年05月26日

ちょっと前のエントリで,typedef で関数プロトタイプに型付けするなんてすげー!とか言ってたんですけれど,K&R にそのまま書いてありました。

プログラミング言語C ANSI規格準拠
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 26691
おすすめ度の平均: 4.0
4 初心者に読ませてよいか、ちょっと迷うが…
4 古典的教科書
2 Cコンパイラのソースを読もう
5 C本の「古典」
4 第1版はバイブルだった

ちょっと長いけれど引用します。

実際に,typedef は #define と似ている。ただ,こちらはコンパイラにより解釈されるから,プリプロセッサの能力を越えるテキストの置換を処理できる点が異なっている。例えば

typedef int (*PFI)(char *, char *);

は "int を返す(二つの char * 引数をもつ)関数へのポインタ" として型 PFI をつくり出す。この PFI は,第5章の分類プログラムにおいて以下のような文脈で使うことができる。

PFI strcmp, numcmp;

typedef 宣言を使うのには,単に見やすいというだけでなく,二つの主な理由がある。第1は移植性を高めるため,プログラムをパラメータ化することである。typedef がマシンに依存するようなデータ型を表わすのに使われるとすれば,プログラムを移植するときに typedef のみを変更すればよい。(snip)

typedef の第2の目的は,プログラムのドキュメンテーションをよくすることである。例えば,Treeptr と呼ばれる型は複雑な構造体へのポインタとしてのみ宣言されたものより理解しやすいであろう。

まだまだ修行が足りないなぁ……。ちょと前に xmlrpc-c も読んでたんですけど,ここでも使われてたし,普通にやってることなんですね。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN