« 復号を考慮した暗号プログラム | トップページ | バッファオーバーフロー »

2007/12/22

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」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: C言語の有効範囲(スコープ):

« 復号を考慮した暗号プログラム | トップページ | バッファオーバーフロー »