vine-users ML アーカイブ



[vine-users:058129] Re: Really Slick Screensavers 再び

  • From: Satoru KAMEOKA <kameoka@xxxxxxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:058129] Re: Really Slick Screensavers 再び
  • Date: Sun, 02 Feb 2003 07:46:34 +0900 (JST)
亀岡と申します。おはようございます。

言語の話題は楽しいので反応します。

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ではないんですよね?