C言語はもともとUNIXのシステム記述用言語として開発されたことから、UNIX専用の言語になるはずであった。 しかし、あまりにも広く普及し、他のプラットフォームでも使われる機会が多くなると、言語仕様レベルで互換性のないCの方言ができてしまった。 これを統一するために、ANSI (American National Standards Institute) および ISO (International Organization for Standarization) と呼ばれる機関が定めた規格が、 ここで紹介しているリファレンスが基礎としているものである。
ANSI/ISO 規格のCにも、出版年度によって二種類ある。 1990 年のものと 1999 年のもので、このリファレンスは前者に基づいている。 前者は C90 (または C89) 、 後者は C99 と呼ばれ、 C99 はまだあまり普及していないのが実情である。 また、JIS(日本工業規格)が 1993 年に定めた JIS X3010-1993 は、 C90 を日本語化したものである。 本リファレンスは C90 を直接日本語化してある上、多様なアレンジが施されているため、 JIS の訳文とはかなり異なる部分があることをお断りしておく。
規格書の入手方法
JIS の C 言語規格は今年度の JIS ハンドブックには載っていないので、規格票を取り寄せるしかない。 これはすでに C99 に改正されている。販売は http://www.jsa.or.jp が 14280 円(!)にて扱っている。
規格書を入手すべきか
このリファレンスはなぜわざわざ規格書に従って書かれているのか。市販の解説書と規格書の違いは、もちろんその目的にある。 解説書はユーザ(プログラマ)のための指南書であるが、仕様書は処理系(コンパイラ、リンカ、アーカイバ)を作る人が読むもので、 普通のプログラマのために書かれたものではない。 したがって、必要はないというのが常識的な結論だが、実際のプログラムには細かな仕様が問題になる場合(特に他の処理系に移植する予定がある場合)がけっこう多く、 親切に基本を教えてくれる解説書が何冊あっても役に立たない場合も少なくない。 どんなに細かな疑問にも答えてくれるという点では、ハードなプログラマには仕様書は必須といってもいいだろう。 プロフェッショナルともなれば、確実に必要である。
ただし、読みやすいものではないし、入手も簡単ではない。