変数名の有効範囲 (3/3)


C 言語との対比

当然、C 言語においても 変数の scope は存在し、以下のようなルールを持っていたはずです。 実は Scheme とかなり似ています。 ちなみに、以下の Scheme のプログラムと
(define (bar x y)
    (if (> x y)
        (let* ((x3 (* x x x))
	       (y3 (* y y y)))
          (max (- x3 y3) y3))
        0))
と C のプログラム
int bar (int x, int y) {
    if (x > y) {
        int x3 = x * x * x;
        int y3 = y * y * y;
        return max(x3 - y3, y3);
    } else {
        return 0;
    }
}
は同じ事をしているといえるでしょう。 下の C のプログラムでは変数への代入は初期化以外は行っていないことに注意。

99.10.6/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp