関数を呼び出すときに、データ授受のために引数(パラメータ)を使用するのはあたりまでです よね。でも、実際これをちゃんとやっている人は少ないのです。 今回紹介しているファイルでは大したことはないのですが、ファイルによっては、先頭付近に訳 の分からない static 変数の宣言が何十行にも渡って行なわれていることがよくあります。 まず、関数へ渡すものは、引数に並べて書くのが大原則です。あまりにもあちこちの関数で使わ れたり、引数の個数が多くなり過ぎるとか、その他何らかの特別な理由がない限り、static 変数 経由でデータを渡すことは許されません。 多分、BASICしか知らない人にとっては、サブルーチンを呼び出すのに変数に値をセットしてか ら呼び出すのが当然でしょう。それが常識でしょうが、これは邪悪の根源みたいなものです。 BASICでは、変数はつねにグローバルですから、どこからでも参照できるし、かつ「破壊」できま す。これが、BASICで大きなプログラムを複数人で開発すると100%パニックになる原因です。 BASIC出身者の中には、static変数にして、ファイル内部でのみ有効ではなく、staticをつけず にプログラムのどこからでも見える変数を宣言してしまう人も多いようです。別のいい方をすると、 誰でも、どこからでも破壊できる変数にして関数呼びだしをするということです。 BASIC以外のほぼ全ての言語では、引数により関数(サブルーチン、プロセジャー、とか)との データのやりとりをします。こうすると、呼ぶ側、呼ばれる側の2者だけがデータを参照し、変更 し、かつ破壊することもできます。つまり、2者以外は、普通には絶対破壊できなくなるのです。
|
ナンプレ問題 |