「C++プログラマのためのC言語入門」はいくつかに分割して進めていこうと考えています。具体的には、対象とするC++のバージョン、そしてC言語のバージョンによって分割することにします。まずは「C++98プログラマーのためのC89入門」からです。

対象とするC++プログラマー

「C++98プログラマーのためのC89入門」の読者は主にC++98を使っている方を対象とします。ただし、C++03もC++98とさほど大きな違いはありません(これらの違いが正確に分かるC++プログラマーは少ないと思います)ので、どちらも対象読者と考えています。

C言語のバージョン

C言語の歴史は古く、標準規格に限ってもいくつかのバージョンがあります。本来であれば、最新版の規格であるC17を対象とすべきかもしれません。しかし、最初は一番基本である最初の国際標準規格であるC89を対象にしたいと思います。C言語のバージョンについての詳細な情報は、当サイトの別の記事である「C言語再入門」の第1回 C言語とはを参照してください。

C++98の標準Cライブラリは、C95をベースにしています。C89とC95のちがいは、おおむねライブラリに関する内容だけです。すなわち、<iso646.h>, <wchar.h>および<wctype.h>の有無やprintf系関数で”%lc”や”%ls”がサポートされるかどうかといった点が異なります。

どの処理系を対象にするか

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

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


↑ C++98プログラマーのためのC89入門