C,C++

なかなかページの改訂が追い付きません。 間違い,新情報などは奥村までお知らせいただければ幸いです。

C言語について

C言語についてはいまさら説明の必要もないでしょう。 1969-1973年頃にUNIXとともにできた言語です。 現在のC言語の標準であるANSI Cができたのは1989年です。

次世代のC言語は,今までC9Xと呼ばれていましたが, 1999年12月1日に正式に ISO/IEC 9899:1999 として出版されましたので, C99 と呼ぶのが適当でしょう。 詳しくは ISO/IEC JTC1/SC22/WG14 - C が参考になります。 gcc については Status of C99 features in GCC というページに対応状況が書かれています。

C++言語について

C++ (シープラスプラス*)は C 言語を拡張したものです。 C++ の前身ができたのは1980年頃で, C++ という名前が付けられたのは1983年ですが,1997年11月14日にやっと C++ の 国際標準 ができました。

* 日本では略して「シープラプラ」とも読みます。

フリーのコンパイラ

Windows 上で C(C++) を勉強するためのフリーの開発環境としては次のものがあります (他にもありましたらお教え下さい)。

Cygwin を使おう

以下の内容はかなり古いです。そのうち直します。

UNIX(Linux や FreeBSD など)と Windows の両刀使いの人は, やはり Cygwin が便利かと思います。

上記のファイルをダウンロードして実行すればインストールできます。 ただしディスクの空き容量が 100M くらいは必要です。

Windows のスタートメニューに登録される Cygwin をクリックすれば, MS-DOS プロンプトのような窓が現れますが, これはやや不完全ながら UNIX 環境(シェルは bash)を模したものです。 基本的な UNIX コマンドはほぼそのまま使えます。

コンパイルするには通常の UNIX の gcc と同様に

gcc test.c -o test

のようにします。生成される実行ファイル名は -o で指定したもの(ここでは test)に拡張子 .exe を付けたものになります。 実際には,なるべく警告をたくさん出すオプション -Wall を付けて

gcc -Wall test.c -o test
のようにするのがいいでしょう。

この test.exe を Cygwin 環境から実行するには,

./test

のように ./ を冠する必要があるかもしれません(PATH 環境変数の設定によります)。

この test.exe を Cygwin 窓ではなく DOS 窓から実行するには, Cygwin 付属の cygwin1.dll にパスを通しておくことが必要です。 あるいは cygwin1.dll を C:\WINDOWS\SYSTEM にコピーしておけばいいでしょう。

どうしても cygwin1.dll のない環境でも動作させたいなら, -mno-cygwin オプションを付けて

gcc -mno-cygwin -Wall test.c -o test

のようにコンパイルするといいでしょう。 特に UNIX 互換を望まなければ,これで十分です。

同じソースコードを本物の UNIX でも Cygwin でも使いたい場合は, 次のマクロを #ifdef で調べるようにします。

unix
UNIX 環境だけで定義されます。
__CYGWIN__
Windows 環境で -mno-cygwin を指定しないときだけ定義されます。

Cygwin 関連のリンク集

下記以外にもたくさんあります。

C/C++ 駄文集

C/C++ のリンク集

参考書


奥村晴彦

Last modified: 2008-07-31 09:43:13