FreeBASIC マニュアルのトップに戻る

FreeBASIC Static

目次→命令文→手続きSTATIC←オリジナル・サイト
目次→実行時ライブラリー参考→変数の宣言STATIC←オリジナル・サイト

STATIC 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

静的記憶域を持っている、変数・オブジェクト・配列を、定義します。

構文:
Static symbol1 [ (array-dimensions) ] As DataType [ = expression] [, symbol2 [ (array-dimensions) ] As DataType [ = expression], ...]
または
Static As DataType symbol1 [ (array-dimensions) ] [ = expression] [, symbol2 [ (array-dimensions) ] [ = expression], ...]
または
Static Var symbol1 = expression [, symbol2 = expression, ...]
または
Sub|Function procedurename ( parameters ) [[ byref ] As DataType] Static
...
End Sub|Function

パラメタ:
symbol
変数や配列の識別名。
array-dimensions
下限値 To 上限値 [, ...]
または
Any [, Any...]
または、空
expression
定数式、または定数式の配列

記述:
変数・オブジェクト・配列に、静的記憶域(記憶域クラス) を指定します。
プログラム開始時に割り当てられて、終了時に割当てを解除されます。
オブジェクトは、定義されるときに、一度、構築されます。そして、プログラム出口で破壊されます。

静的配列を宣言する場合、添字範囲の値として使えるのは、numeric literalsconstantsenumerations だけです。
静的可変長配列は、空(添字範囲リスト無し)で宣言した上で、使う前に、Redim でサイズ変更しなければなりません。

流れ制御命令 ループや手続きのように、反復的で再帰的なブロックでは、ブロックに対してローカルな、静的変数・オブジェクト・配列は、ブロックのすべてのインスタンスをとおして、同じ記憶装置を占めることを保証されます。
例えば、これら自身を(直接あるいは間接的に)呼ぶ手続きは、これらのローカル静的変数の、同じインスタンスを共有します。

静的変数は、定数値で初期化されるだけです:その初期値は、プログラムの開始時に、何かコードが実行される前に、設定されます。従って、この初期値は、プログラムの中の変数や関数に依存することはありません。

Static は、手続き定義レベル(宣言行レベルでは禁止)で使われるとき、すべての局所変数、オブジェクト、配列に対して 静的記憶(記憶域クラス) を指定します。一時変数と内部変数(明示的に宣言されていないオブジェクト)は除きます。

モジュール・レベル変数宣言のときにのみ、Shared 修飾語を、Static キーワードと共に、モジュール・レベル静的変数が、手続きの中で見えるようにするために、使うことができます。

ユーザ定義型(UDT) と共に使う時、Static は、静的メンバー手続き、または変数 を生成します。

例:
Sub f
    '' 関数は、最初 0 で呼ばれます
    Static timesCalled As Integer = 0
    timesCalled += 1
    Print "呼び出した回数: " & timesCalled
End Sub

'' f() の静的変数は、複数の手続呼び出しの間で
'' その値を保持します。
f()
f()
Sleep


とすると、以下のように出力されるでしょう:
呼び出した回数: 1
呼び出した回数: 2

方言差:
QBからの違い:
参照:
手続きに戻る
変数の宣言に戻る
←リンク元に戻る プログラム開発関連に戻る
ページ歴史:2021-08-31 04:23:55
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承