トップ  >  リファレンス  >  基本  >  変数  >  静的変数
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ
静的変数


静的変数は静的記憶域クラスに宣言されます。
static修飾子はデータ型の前に書きます。

静的変数は、任意の式で初期化する事が出来る普通のローカル変数とは異なり、
データ型に合った定数(または定数式)で初期化出来ます。

静的変数はプログラム実行の瞬間から存在しており、プログラムがロードされた後に一度だけ初期化されます。
初期値が指定されていな場合、静的記憶域クラスの変数はゼロの初期値が設定されます。

静的変数のスコープは、変数が宣言されているローカルブロックです。

static修飾子で宣言されたローカル変数は、関数が終了して値を保持し続けます。
その為、次に同じ関数が呼び出された時に、前回呼び出し時の値が含まれています。

ブロック内の全ての変数は(関数の仮引数を除く)staticで宣言する事が出来ます。
ローカルレベルで宣言された非静的変数(static修飾子の無い変数)のメモリ、
自動的にスタック領域へ割り当てられます。

サンプルソース:
void OnInit(){
    sub_function();           // 11:11が表示される
    sub_function();           // 12:11が表示される
}


void sub_function() {

    static int s_icount = 10; // 静的ローカル変数を宣言(初期値:10)
           int icount   = 10; //     ローカル変数を宣言(初期値:10)

    s_icount++;
    icount++;

    Print(s_icount,":",icount);

}


スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system