[C99] 第0回 はじめに

今回から「C++プログラマのためのC99入門」の連載を始めたいと思います。C言語にはいくつかのバージョンがありますが、本編で扱っているのは、そのうちのC90です。この番外編では、執筆時点での最新規格であるC99を扱うことにします。本編同様、コメントやメールで質問や感想をお寄せいただければ、何らかの形でフィードバックしたいと思いますので、よろしくお願いします。

C99について

C言語の歴史は古く、標準規格に限ってもいくつかのバージョンがありますが、この番外編では、現行規格であるC99を対象にします。C言語のバージョンについての詳細な情報は、当サイトの別の記事である「C言語再入門」の第1回 C言語とはを参照してください。

C++における標準Cライブラリは、C95をベースにしています。C99では、C95のライブラリを完全に包含し、さらに数学関係を中心に大幅にライブラリが拡張されています。C99で追加されたライブラリの多くは、TR1C++0xでC++にも取り込まれることになりました。しかし、複素数関係など、一部のライブラリに関しては、CとC++の間での互換性が完全に失われています。

意外かもしれませんが、Windowsを除けば、C99に対応している処理系は少なくありません。LinuxやMac OSXなどのGCC + GLIBCをはじめ、組込み用途の処理系でも、とくにサードパーティ製のものは比較的C99によく対応しているように思います。もちろん、C99に完全準拠しているかというと、必ずしもそうではないのですが、実用上大きな問題になることは少ないでしょう(これはC++でも似たような状況です)。

どの環境を対象にするか

本連載では、特定の環境に依存するのではなく、可能なかぎり一般的な内容にしたいと思います。ただし、具体例を挙げるために必要な場合には、特定環境を採り上げる可能性はあります。その場合は、都度どんな環境を想定しているかを明記するようにします。

なお、特定の環境には依存しないといっても、フリースタンディング環境かホスト環境かは区別しなければなりません。フリースタンディング環境というのは、C++でいうところの「自立処理系」の環境であり、ホスト環境というのは、C++でいうところの「依存処理系」の環境のことです。本連載では、特に指定がない場合はホスト環境を想定します。フリースタンディング環境については、それを解説する回を設けたいと思います。

この記事のトラックバックURL:

http://www.kijineko.co.jp/trackback/770
このエントリーを含むはてなブックマーク