土日シリーズ「いろんなコンピューター言語の覚え方」、
前回までで、1ファイルでプログラムを作る場合の話は終わりました。
今回は、複数ファイルに分割して、プログラムを作る場合についてです。
■複数のファイルのわけかた&引用の仕方
Javaなどは、クラスごとに分けるときまって?ますけど、ほかの言語の場合、(CとかPHPとか)は、関数レベルで、すきに分割できます。
問題は、分割した時、そのクラスや関数を使いたい場合です。
これには、import(JAVAの場合)や、include(Cなどの場合)をして利用します(しなくてもできるときがあるが、原則)
ただし、言語によっては、Cだと、includeしただけでなく、externをしないといけないとか、ほかにも約束事がある言語があります(includeといっても、書き方は言語によって違います)
また、PHPやPerlでは、includeしたら毎回インクルードする命令と、1回だけインクルードする命令があります。
■変数の利用できる範囲と生存期間
ここで問題になるのは、変数の利用できる範囲(スコープ)です。
まあ、関数内に書いたら、関数内、これはいいんですけど、関数の外に書いた場合、そこから下の関数が使える、では、ほかのファイルの関数が使うには?っていう話とかです。Cだとexternですが、ほかの言語だと違います。
また、その変数の生存期間も問題になります。
関数が終わったら、消えてしまうのはいいのですが、staticすると、生き残っている(前の値が使える)っていうことに注意です。この場合、どこで初期化されるのか、というのが言語的には問題ですし、テスト的には、前の値がのこってて、ほんとに大丈夫か?排他制御とかする必要ある?ということを考えないといけません。
ってことで、今回はおしまい。
次回は総まとめです。