C言語の有効範囲(スコープ)
C言語のスコープについてのメモです。
#include <stdio.h> int a; void function() { int b; static int x; } int main() { int c; for( ; ; ){ int d; } }
このようなコードがあるとして、変数aはファイル有効範囲を持ち、変数b、c、dはブロック有効範囲を持ちます。
*ファイル有効範囲・・・プログラム全体で有効
*ブロック有効範囲・・・宣言されたブロック内{ }で有効
また、変数xにはstaticという記憶域クラス指定子がついています。このstaticがついていると、main関数を実行する前に生成され、プログラム終了時に消滅します。さらに初期化子が与えられない場合には自動的に0で初期化されます。
変数aにはstaticはついていませんが、静的記憶域期間を持ちます。
| 固定リンク
「C」カテゴリの記事
- CG法(2008.12.09)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その5(2008.10.10)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その4(2008.10.09)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その3(2008.10.08)
- NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その2(2008.10.07)
この記事へのコメントは終了しました。
コメント