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

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

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/222903/17448005

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

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