「C言語/関数」の版間の差分
削除された内容 追加された内容
→static 変数とポインタの必要性: グローバル変数には、かつての errno の様に有用な用途もありますが、プログラムのどこからも参照や変更ができるので、goto文と同程度に有害です。 C11からは、errno はマクロになりました。 タグ: 2017年版ソースエディター |
→static 変数とポインタの必要性: cleanup タグ: 2017年版ソースエディター |
||
215 行
static(静的)はdynamic(動的)との対比からです。ローカル変数はスタック上に一時的に記憶領域が確保され、関数を抜ける度にスコープを抜けます。
これに対して、static 変数は、プログラムが開始され終了するまでの期間に渡って同じ領域(同じアドレス)を持ち、これはグローバル変数と同じ特徴ですが、関数内で static 宣言された変数は、関数の外から参照できません。
すべての関数ブロックの外の、コード前半部の部分(グローバル領域)で、変数宣言をすると、その変数は、すべての関数からアクセスできます。
|