変数の名前の通用範囲(scope)は,その名前が定義されるプログラムの部分である。 関数の始めに宣言される局所変数では,通用範囲はその名前が宣言される関数であり, 同じ名前の局所変数が別の関数にあってもこれとは関係がない。 同じことは関数の引数についてもいえる。それらは実質的には局所変数だからである。
関数の通用範囲は,コンパイルされるべきファイルで宣言された点から
そのファイルの終りまで続く。
一方,大域変数が定義される前に参照されたり,
main()関数の定義されているファイルと別のソース・ファイルで参照
されたりすると,extern宣言が必要となる。
大域変数の宣言とその定義の区別は重要である。 宣言は変数の性質を指示するものだが,定義は記憶への割り付けも引き起こす。 ただし,インタプリタ(matx)では, 宣言によって記憶への割り付けも行なわれる。
インタプリタ(matx)の実行中,関数の外側では,
どんなデータでもそのクラスに関係なく任意の変数に代入することができる。
すなわち,左辺の変数のクラスと
右辺のデータのクラスが一致してなくても,代入は成功する。
また,次の節で説明する暗黙の型変換によって,異なる型のデータの
代入が可能となる場合がある。
これ以外の全ての場所では,代入において,左辺の変数のクラスと右辺のデータ
のクラスは一致していなければならない。