🧩 関数とスコープ
「どこで値が変わったのか分からない」バグが出ます。関数を単体で見ると正しいのに、組み合わせると壊れます。同名の定義が複数ファイルにあると error: redefinition of 'count' やリンク時の multiple definition of 'count'。
グローバル変数はどの関数からも書き換えられるため、変更経路を追えません。関数の入力と出力が引数・戻り値に表れないので、テストも再利用も難しくなります。
データは引数で渡し、結果は戻り値で返します。まとまった状態は構造体1つにして持ち回ります。そのファイル内だけで使う変数には static を付けて外から見えなくします(ヘッダには定義を書かず、必要なら extern 宣言だけ置きます)。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。