読者です 読者をやめる 読者になる 読者になる

変数の有効範囲をどう伝えるか

life c programmer

仕事で変数の有効範囲を他者に説明する時に混乱したので整理してみる。

変数の有効範囲は、下記2つの要素で決まる。

  • 宣言箇所( 関数内, 関数外 )
  • 記憶クラス指定子( extern, static, auto, register )の指定

ソースで表すと

gist0473e607c28d6b6d97ff

仕事をするようになって、「関数内」の「記憶クラス指定子無し」の変数を「ローカル変数」から「オート変数」と呼ぶようになったのが大きそうです。

あと、オート変数はauto変数と記憶クラス指定子と関連していて、ローカル変数およびグローバル変数は宣言箇所と関連している*1のが混乱の元になっている。本来、組み合わせで変数の有効範囲を説明するべきなのに、片方だけを取り上げて有効範囲を説明している。

混乱の要因は整理できたと思うので、後は仕事先の言葉から外れないように有効範囲の説明をしていこう。

*1:関数内で宣言する変数は局所(ローカル)変数、関数外で宣言する変数は広域(グローバル)変数と説明している資料を見かける

鋼の錬金術師27巻

life comic

最後だけあって、名シーン多いなあ。

鋼の錬金術師26巻

life comic

ホムンクルスって満足して死んでいった奴が多い気がした。 といっても、はっきりそうだと言えるのは、グリードとラースくらいかも。

鋼の錬金術師25巻

life comic

"ただ"闘う、それって難しいことなんだろうな。

鋼の錬金術師24巻

life comic

人から感情を取ったら、面白く無くなるのは同意。

鋼の錬金術師23巻

life comic

複数の選択肢を持つ事は大事。

鋼の錬金術師22巻

life comic

読み返したけど、あいかわらず面白い。