グローバル変数を使うのではなく、引数や戻り値を利用しましょう。
「C言語 関数」とかで調べてください。
グローバル変数でも確かに実装自体はできます。ですがバグの温床になりやすいです。
自分ひとりでやるならいいですが、普通、会社レベルになるとチーム開発になります。
で、仮に簡単なプログラムとして、「入力値をテストの点数として仮定し、80点以上なら合格、それ未満なら不合格と表示するプログラム」を作るとします。
そして、グローバル変数 point (= 点数) を用意したとして、これにアクセスする場合、
グローバル変数はどこからでもアクセスが可能です。
よって、想定しない場所でデータの書き換えが行われる可能性があります。
確かに引数や戻り値も書き換え可能ですが、デバッグ時にはデータの状態や設定・取得している範囲を見ればいいだけです。
でも、グローバル変数だと、関係のない関数からでも触る事ができますから、「全ての範囲」を対象に調査しないといけません。
1人で作るなら勝手にすればいいのですが、1人で作る場合でも一か月前の自分が作ったものをマジで忘れているってこともザラです。(読めばわかるが、細かい部分までは...)
プログラミングは書いて終わり…ではありません。デバッグや保守も必要です。
後の事を考えると、やはりグローバル変数は使うのはやめておいた方がいいです。
ただし、Windows APIとかで複数のウィンドウプロシージャ(他の言語やライブラリだとイベントに相当するものを処理するやつ) で使い回す場合とか、競技プログラミングとかであえて使うってことはあります。
ですが、安易にグローバル変数を使うとバグの温床になり、修正困難に陥る可能性もありますから、使わない方が無難です。
なので、引数や戻り値によって対処しましょう。
書き方は調べてください。入門書とかにも載っていることです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/21 08:27