亀岡と申します。おはようございます。 言語の話題は楽しいので反応します。 From: Hiroshi Nakata <hirotan@xxxxxxxxxxxxxxx> Subject: [vine-users:058125] Really Slick Screensavers 再び Date: Sun, 2 Feb 2003 03:23:43 +0900 Message-ID: <20030202032343.48a0f182.hirotan@xxxxxxxxxxxxxxx> > other_src/sundancer2.c がそのままではコンパイルできず、 > ソースを修正しました。ちょっとC言語の言葉遣いを厳密に > 理解していないので変数の宣言だか定義だか愛昧なんですが、 > 例えば > > foo() > { > int a, b; /*変数宣言*/ > for (a = 0, b = 0; b < 10; ++a, ++b) > ; > int x, y; /*こんなところで変数宣言?*/ > for (x = 0, y = 0; y < 10; ++x, ++y) > ; > } > > みたいな感じに、変な場所で変数を宣言していて、それが > エラーになっています。私が DOS で使った LSI C-86 試食版 > では、これは通らない文法だったと思います。他のコンパイラ > を知らないので自信もって言えないのですが、gcc の拡張か > 何かでしょうか。そう言えば C ソースなのに // でコメント > 入れてるし。 宣言とコードの混合や、C++スタイルのコメントを許すのはGCCの拡張機能です。 (ANSI-Cではダメ) 以下のページを御参照ください。 http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_4.html#SEC61 移植性を考えたプログラムでは使われないと思うのですが、不思議ですね。 何らかの理由でconfigureスクリプトがコンパイラをGCCと判断したのでしょう か。仲田さんがお使いのコンパイラはGCCではないんですよね?